gpt4 book ai didi

javascript - JavaScript 中的词法范围

转载 作者:行者123 更新时间:2023-11-30 08:13:21 24 4
gpt4 key购买 nike

为什么这里记录的是 100 而不是 101?

function myFunction() {
var i=100;
function f() {
return i++;
}
return f();
};
var X = myFunction();
console.log(X);

http://jsfiddle.net/PhillipSenn/8fqyh/

最佳答案

因为 f() 返回 i 递增之前的值。如果你想在值递增后使用它,请使用预递增 (++i)。

此外,声明 f() 只是为了立即调用它,这有点奇怪。我认为您的意图是返回一个递增 i 并在每次调用时返回新值的函数。为此,只需返回函数,然后调用 console.log(X()) 来调用 f() 并记录增加的值:

function myFunction() {
var i=100;
return function() { return i++; }
};
var X = myFunction();
console.log(X());

关于javascript - JavaScript 中的词法范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7297466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com