gpt4 book ai didi

带有 setInterval 和对象的 Javascript 奇怪行为

转载 作者:行者123 更新时间:2023-11-29 18:25:41 25 4
gpt4 key购买 nike

尝试在对象中使用 setInterval 时出现一些奇怪的行为。

这是我的代码:

var Person = {
speech: null,

tryToSpeak: function ()
{
this.speech = "hello";
self.setTimeout (this.speak, 1000);
},

speak: function ()
{
// prints out undefined
console.log (this.speech);
}
}

Person.tryToSpeak ();

speak() 通过 setTimeout() 运行时,它无法访问任何对象数据,例如 speech。这到底是怎么回事?这是不可避免的行为吗?

最佳答案

方法不携带对象信息。您可以使用 .bind ……将方法绑定(bind)到一个对象:

window.setTimeout(this.speak.bind( this ), 1000);

阅读更多关于 javascript this keyword 的信息

关于带有 setInterval 和对象的 Javascript 奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13570811/

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