`
piperzero
  • 浏览: 3475059 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

用arguments对象模拟函数重载

 
阅读更多

在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的方法来获取。

分享到:
评论

相关推荐

    Javascript中的arguments对象

    这个函数体内的arguments非常特殊,实际上是所在函数的一个内置类数组对象,可以用数组的[i]和.length。 2、有什么作用? js语法不支持重载!但可用arguments对象模拟重载效果。 arguments对象:函数对象内,自动...

    详解JS函数重载

    本文主要介绍了利用JavaScript中的特殊对象arguments来模拟函数重载的解决方案,非常的实用,给需要的小伙伴参考下

    JavaScript王者归来part.1 总数2

     6.2.2.3 一个使用Arguments对象模拟函数重载的例子   6.2.3 参数类型匹配--一个利用arguments实现函数重载机制的例子   6.3 函数的调用者和所有者   6.3.1 函数的调用者   6.3.2 函数的所有者--一个为函数...

    javascript函数重载解决方案分享

    JS的函数定义可以指定形式参数名称,多多少少我们会以为js至少可以支持参数个数...办法总是有的,我们可以利用JavaScript中的特殊对象arguments来模拟函数重载。用它来判断传入参数的个数或类型以区分重载。 1.根据参数

    javascript中通过arguments参数伪装方法重载

    但是我们可以通过arguments这个参数来伪装成函数的重载 在模拟之前我们先看一下代码: 代码如下: //表面上没有声明形式参数的函数 function fun() { alert&#40;“示例代码”&#41;; } fun(“小明”, 100, true);//...

    JavaScript重载函数实例剖析

    javascript的函数中有一个叫arguments的变量,是记录参数的一个数组,我们可以用这个来判断参数的个数,然后分别执行不同的内容,就是同一个函数可以有不同效果,跟C++等强类型语言的重载函数还是相差很大。...

    Javascript 面向对象 重载

    但是我们确实是可以实现重载的,如果你用过jQuery,你就会深有体会,比如$(“#btn”).val() 是获取id为”btn”的按钮的value值,而$(“#btn”).val(“点我”)则是给id为”btn”的按钮赋值。 那么JavaScript是怎么...

    Javascript数组操作高级心得整理

     模拟函数重载 10 (3) Function对象(类) 10  Function对象的使用 10  使用Function类的length属性 11  使用Function类的valueOf()方法和toString()方法 11 (4) 闭包 11 8. 循环语句 11 (1) for循环 12  ...

    JavaScript高级教程

    2.11.2 arguments 对象..............................................53 2.11.3 Function 类..............................................54 2.11.4 闭包..............................................56 ...

Global site tag (gtag.js) - Google Analytics