为什么100在这里被记录而不是101?
function myFunction() {
var i=100;
function f() {
return i++;
}
return f();
};
var X = myFunction();
console.log(X);
答案 0 :(得分:6)
因为f()
在递增之前返回i
的值。如果您想要增加后的值,请使用预增量(++i
)。
此外,声明f()
除了立即调用它之外没有其他目的,这有点奇怪。我认为你的目的是返回一个递增i
的函数,并在每次调用时返回新值。要实现此目的,只需返回该函数,然后调用console.log(X())
以调用f()
并记录递增的值:
function myFunction() {
var i=100;
return function() { return i++; }
};
var X = myFunction();
console.log(X());