我有这个自我执行函数,它自己调用:
(function a(x){
if(x > 0){
x--;
console.log(x);
}
a(x);
})(5);
//outputs 4 3 2 1 0
这是正确的行为。但是,如果我将此函数传递给变量,我怎么能实现相同的行为呢?
var a = (function (x){
if(x > 0){
x--;
console.log(x);
}
//a(x); outputs error
})(5);
答案 0 :(得分:4)
在第二种情况下,Immediately Invoked Function Expression(IIFE)的结果(undefined
)将分配给变量a
。因此,a
没有与之关联的功能。