今天看读别人的代码的时候发现了arguments对象,不明白之下翻了下书,总结了下,以便备用
写给不会的朋友,会者飘过~
ECMASCript规范中不存在重载这个概念,测试代码 如下
function test(){
}
function test(){
alert('1');
}
function test(){
alert('2');
}
test();//2
根据顺序执行的规则,前2个test函数被最后一个test函数覆盖,所以最后输出为2
---使用arguments,可以无法指出参数名的情况下进行访问
----arguments可以看错为一个参数列表数组,通过argument[index]的形式对参数进行访问
-----arguments.length获得参数列表长度
function test(){
if(arguments[0]!=undefined){
alert(arguments[0]);
}
}
test(2);//2
根据 上面对arguments的介绍,结合argument.length.就可以实现方法的重载,虽然不是很方便,但却可以绕开ECMASCript不能重载的限制了
function test(){
if(arguments.length==1){
alert(arguments[0]);
}
else if(arguments.length==2){
alert(arguments[0]+arguments[1]);
}
}
test(2);//2
test(1,2);//3
分享到:
相关推荐
主要介绍了JS模拟实现方法重载,涉及js基于arguments实现重载的相关技巧,需要的朋友可以参考下
主要介绍了Javascript中arguments用法,实例分析了javascript利用arguments实现模拟重载功能,需要的朋友可以参考下
但可用arguments对象模拟重载效果。 arguments对象:函数对象内,自动创建的专门接收所有参数值得类数组对象。 arguments[i]: 获得传入的下标为i的参数值 arguments.length: 获得传入的参数个数! 重载: 程序...
而javascript没有方法重载这个概念。但是我们可以通过arguments这个参数来伪装成函数的重载 在模拟之前我们先看一下代码: 代码如下: //表面上没有声明形式参数的函数 function fun() { alert(“示例代码”&#...
本文主要介绍了利用JavaScript中的特殊对象arguments来模拟函数重载的解决方案,非常的实用,给需要的小伙伴参考下
JS的函数定义可以指定形式参数名称,多多少少我们会以为js至少可以支持参数个数...办法总是有的,我们可以利用JavaScript中的特殊对象arguments来模拟函数重载。用它来判断传入参数的个数或类型以区分重载。 1.根据参数
javascript的函数中有一个叫arguments的变量,是记录参数的一个数组,我们可以用这个来判断参数的个数,然后分别执行不同的内容,就是同一个函数可以有不同效果,跟C++等强类型语言的重载函数还是相差很大。...
假如 我这样定义: 代码如下: function getDate(){…..} function getDate(date){…..} 那么后一个方法将覆盖前一... 答案很简单:arguments arguments是JavaScript里的一个内置对象,包含了调用者传递的实际参数,但不
使用[removed]调用外部的JavaScript(.js文件) 4 如何与老浏览器打交道 4 (2) 把JavaScript代码放到HTML页面不同的位置 4 把JavaScript代码放到HTML<body>部分 4 把JavaScript代码放到HTML<head...
6.2.2.3 一个使用Arguments对象模拟函数重载的例子 6.2.3 参数类型匹配--一个利用arguments实现函数重载机制的例子 6.3 函数的调用者和所有者 6.3.1 函数的调用者 6.3.2 函数的所有者--一个为函数...
第 1 章 JavaScript 是什么...............................................1 3 1.1 历史简述..............................................1 1.2 JavaScript 实现................................................