日期:2014-05-16  浏览次数:20404 次

Javascript 没有重载的理解
在 Javascript 中,是没有重载的概念的。我们可以通过将函数名想像为指针的方法对其加以深入的理解(很好理解)。

下面的一个例子可以让大家很容易的明白 Javascript 中无重载的概念。

function addNum(s1){
		return 100+s1;
	   }
			
	   function addNum(s2){
		return 200+s2;
	   }
			
	   alert(addNum(1)); // 输出 201,实际上第二个函数覆盖了第一个函数。


看下面的变量声明函数法对上述概念的理解:

var addNum = function(s1){
		return 100+s1;
	   };
			
	   addNum = function(s1){
		return 200+s1;
	   };
			
	   alert(addNum(1)); // 输出 201,更容易看出第二个函数覆盖了第一个函数。


对于变量的声明,实际上此处的 addNum 是对 Function 对象的一个引用,可以想象成指针,变量声明了两次,实际上第二次的声明切断了函数第一次的引用而指向了另外一个对象。

在这里,我们可以把每个函数都看做是 Function 类型的实例。由于这里的函数是对象,则函数名实际上是指向函数对象的指针,而并不会与某个具体的函数绑定。