JavaScript中的重载

其实这个标题是错误的,准确的来说,JavaScript中并没有重载一说,但是我之所以用这个标题呢,是因为使用arguments对象可以达到重载的效果。

请先看下面两个函数:

function add(num){
	alert(num+100);
}
function add(num){
	alert(num+10);
}
add(10);

你认为这段代码会显示什么,alert将显示20,因为第二个add函数将第一个add函数覆盖了,那么如何实现重载呢?


使用重载的方法需要用到arguments这个特殊对象.

这个特殊对象arguments就类似于一个数组,它储存的是函数的参数,该数组还有一个属性,那就是length属性。使用arguments.length可以确定函数的参数个数,通过这个属性就可以实现“重载”啦。

还是刚才那个例子:

function add(){
	if(arguments.length == 1){
		alert(arguments[0] + 100);
	}else if(arguments.length == 2){
		alert(arguments[0] + arguments[1]);
	}
}
add(10);
add(10,10);

现在出现的结果就是第一次110,第二次20,运行结果:

第一次结果

 

运行结果

原文链接:,转发请注明来源!

发表评论

  • 1 Responses to “JavaScript中的重载”
    • 幻舞

      我觉得这个重载挺好用的啊?怎么没人回复呢?

      回复