gpt4 book ai didi

javascript - 为什么这个 Javascript 方法不会继续调用自己?

转载 作者:数据小太阳 更新时间:2023-10-29 05:40:50 25 4
gpt4 key购买 nike

我有一个带有特权方法的 JavaScript 对象。此方法完成后,我希望它调用自身(在短暂的超时后)并无限期地继续运行。不幸的是,该方法只运行了两次,然后就停止了,没有任何错误(在 Chrome 和 IE 中测试,结果相同)。

代码如下:

function Test() {
// ... private variables that testMethod needs to access ...
this.testMethod = function() {
alert("Hello, from the method.");
setTimeout(this.testMethod, 2000);
};
}

var myTest = new Test();
myTest.testMethod();

我希望每两秒收到一次警报,但它只显示两次警报,然后停止。你可以看到一个 live example here .知道为什么会这样吗?

最佳答案

因为函数外的this和函数内的this是不一样的。试试看:

function Test() {
// ... private variables that testMethod needs to access ...
var me = this;
this.testMethod = function() {
alert("Hello, from the method.");
setTimeout(me.testMethod, 2000);
};
}

关于javascript - 为什么这个 Javascript 方法不会继续调用自己?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6298082/

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