首页 > 代码库 > 函数是对象,函数名值指针
函数是对象,函数名值指针
如题,函数与函数名的关系就和对象与对象指针关系是一样的,如何理解呢?
function sum(a,b){ return a+b; }上述代码定义了一个名为sum的函数,其函数名sum与函数主体的关系如下:
和对象与对象指针的关系一样,一个函数可以有多个名字。
function sum(a,b){ return a+b; } alert(sum(10,10));//20var anotherSum = sum; alert(anotherSum(10,10));//20上述代码将函数指针sum赋给anotherSum(函数名不带括号时是访问函数指针,而不是调用函数)。于是sum和anotherSum都指向了函数主体:
现在函数就有了两个名字,如果将其中一个名字删掉(设为null,也不影响另一个名字与函数的关系):
sum = null; alert(anotherSum(10,10));//20从上图可看出,sum=null仅是断绝了sum与函数的联系,而不影响函数本身,即可正常调用anotherSum。
附加说明:有了对以上的理解,函数没有重载也便很好理解了。当给一个已存在的函数名再次赋值一个函数体时,指向原本函数体的指针便指向了新的函数体,所以没有重载,函数名会指向最新指向的那个函数。
函数是对象,函数名值指针
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。