gpt4 book ai didi

javascript - 为什么当我使用 setTimeout 方法时变量不保留?

转载 作者:行者123 更新时间:2023-11-30 00:03:02 28 4
gpt4 key购买 nike

<分区>

var obj = {
id: 1,
getId: function(){
console.log(this.id)
}
}

obj.getId(); // 1

setTimeout(obj.getId, 1000); // undefined

所以我试图了解直接调用该方法效果很好,但是当我使用 setTimeout 方法调用它时,范围不知何故消失了。这是为什么?这是语言的缺陷还是我不完全理解的幕后发生的其他事情。

我什至在 getId 方法中尝试了 var self = this; 但它仍然会说 self.id 未定义。这是怎么回事?

PS:我正在使用节点 v6.5.0 来运行这段代码。

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