我们都知道,函数始终都会有一个返回值,即便不是显式返回,它也会隐式返回一个 undefined 。
既然函数能返回一个唯一值,那么这个值就也有可能是另一个函数。
function a(){
alert('A!');
return function(){
alert('B!');
};
};在这个例子中,函数 a( ) 会在执行它的工作(弹出 A!)之后返回另一个函数。而所返回的函数又会去执行另外一些事情(弹出 B!)。我们只需将该返回值赋值给某个变量,然后,就可以像使用一般函数那样调用它了:
var newFunc = a();
newFunc();如你所见,上面第一行执行的是 alert('A!') ,第二行才是 alert('B!') 。
如果,你想让返回的函数立即执行,也可以不用将它赋值给变量,直接在该调用后面再加一对括号即可,效果是一样的:
a()();本文摘自《JavaScript面向对象编程指南》,分享的目的仅供个人学习和理解,如需转载请备注本文出处,谢谢!