gpt4 book ai didi

javascript - 这个javascript的输出和原因

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:50:50 25 4
gpt4 key购买 nike

function getCtr(){
var i = 0;
return function(){
console.log(++i);
}
}
var ctr = getCtr();
ctr();
ctr();

过去五年我一直在使用 Javascript,但在上次面试中这个问题让我哑口无言。据我所知,我尝试了一切,但无法弄清楚。

能否请您帮助我了解输出结果及其原因,以便我可以更好地准备 future 的采访。

最佳答案

var ctr = getCtr();

这会调用 getCtr(),它将 i 初始化为 0,并存储对该函数的引用

function() {
console.log(++i)
}

点击率。因为该函数是在 getCtr() 范围内创建的,所以变量 i 仍然可以在存储在 ctr 中的函数范围内访问。

第一次调用

ctr()

执行 console.log(++i),它在 i 上有一个preincrement,所以它打印出 1。第二次调用执行相同的代码,具有相同的预增量,并打印出 2

免责声明:不是 JavaScript 开发人员。如果我犯了错误或使用了一些不受欢迎的措辞,请原谅我。

关于javascript - 这个javascript的输出和原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7108182/

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