Phi*_*enn 3 javascript closures
我希望变量i是一个计数器,但它100每次都被初始化.
我怎么myFunction().f()直接打电话?
function myFunction() {
var i=100;
function f() {
i=i+1;
return i;
}
return f(); // with parenthesis
};
var X = myFunction();
console.log(X);
X = myFunction();
console.log(X);
Run Code Online (Sandbox Code Playgroud)
你不能f直接打电话.它被封装在一个闭包中,其关键是要关闭所有局部变量.你必须把它暴露在外面myFunction.
第一:
return f; //(); // withOUT parenthesis
Run Code Online (Sandbox Code Playgroud)
然后只需调用X,因为你已经为它分配了一个函数.
var X = myFunction();
X();
Run Code Online (Sandbox Code Playgroud)