在javascript中可以用arguments对象判断传递给函数的参数个数,即可模拟函数重载:
function toAdd(){
if(arguments.length==1){
return arguments[0]+5;
}else if(arguments.length==2){
return arguments[0]+arguments[1];
}
}
toAdd(10); //15
toAdd(20,30);//50
用arguments可以得到传入的参数个数,和每个参数是什么:
function text(){
//参数的个数arguments.length
for(var i=0;i<arguments.length;i++){
alert(arguments[i]); //弹出每个参数
}
}
ECMAScript不会验证传递给函数的参数个数是否等于函数定义的参数个数,定义的函数可以接受任意个数的参数(根据Netscape文档,最多可接受25个参数),而不会引发任何错误。任何遗漏的参数都会已undefined传递给参数,多余的参数将会被忽略。
如果需要确定函数中实际有多少个参数,可以用函数名.length的方法来获取。
分享到:
相关推荐
这个函数体内的arguments非常特殊,实际上是所在函数的一个内置类数组对象,可以用数组的[i]和.length。 2、有什么作用? js语法不支持重载!但可用arguments对象模拟重载效果。 arguments对象:函数对象内,自动...
本文主要介绍了利用JavaScript中的特殊对象arguments来模拟函数重载的解决方案,非常的实用,给需要的小伙伴参考下
6.2.2.3 一个使用Arguments对象模拟函数重载的例子 6.2.3 参数类型匹配--一个利用arguments实现函数重载机制的例子 6.3 函数的调用者和所有者 6.3.1 函数的调用者 6.3.2 函数的所有者--一个为函数...
JS的函数定义可以指定形式参数名称,多多少少我们会以为js至少可以支持参数个数...办法总是有的,我们可以利用JavaScript中的特殊对象arguments来模拟函数重载。用它来判断传入参数的个数或类型以区分重载。 1.根据参数
但是我们可以通过arguments这个参数来伪装成函数的重载 在模拟之前我们先看一下代码: 代码如下: //表面上没有声明形式参数的函数 function fun() { alert(“示例代码”); } fun(“小明”, 100, true);//...
javascript的函数中有一个叫arguments的变量,是记录参数的一个数组,我们可以用这个来判断参数的个数,然后分别执行不同的内容,就是同一个函数可以有不同效果,跟C++等强类型语言的重载函数还是相差很大。...
但是我们确实是可以实现重载的,如果你用过jQuery,你就会深有体会,比如$(“#btn”).val() 是获取id为”btn”的按钮的value值,而$(“#btn”).val(“点我”)则是给id为”btn”的按钮赋值。 那么JavaScript是怎么...
模拟函数重载 10 (3) Function对象(类) 10 Function对象的使用 10 使用Function类的length属性 11 使用Function类的valueOf()方法和toString()方法 11 (4) 闭包 11 8. 循环语句 11 (1) for循环 12 ...
2.11.2 arguments 对象..............................................53 2.11.3 Function 类..............................................54 2.11.4 闭包..............................................56 ...