gpt4 book ai didi

Javascript:设置超时问题

转载 作者:行者123 更新时间:2023-11-28 13:59:03 25 4
gpt4 key购买 nike

当我开始我的脚本时,我有这个:

var my_great_masterpiece = new function ()
{
var self = this;

然后在我的脚本中我有这个:

        response_xml: function ()
{
if (self.http_request.readyState == 4)
{
if (self.http_request.status == 404 && countXmlUrl <= 3)
{
countXmlUrl++;
self.realXmlUrl = xmlUrl[countXmlUrl];
self.request_xml();
}
if (self.http_request.status == 200)
{
self.xmlDoc = self.http_request.responseXML;
self.storage.setItem('domains_raw_xml', self.http_request.responseText);
self.main.peter_save_data();
self.timervar = setTimeout(function ()
{
// ########### Below line gives the error #############################
self.new_version_show_window();
}, 2000);
}
}
},
new_version_show_window: function ()
{
...
}

我收到的错误是:

Error: self.new_version_show_window is not a function

我做错了什么?

谢谢!

最佳答案

从您的代码中不清楚 new_version_show_window 的定义位置。也许你可以在 self 上明确定义它:

self.new_version_show_window = function () {
/* ... */
}

相反。或者您可以在本地命名空间中定义它并直接在 setTimeout 调用中使用它:

self.timervar = setTimeout(function () {
new_version_show_window();
}, 2000);

或者简单地说:

self.timervar = setTimeout(new_version_show_window, 2000);

因为closure ,在外部函数中声明的变量在内部函数中也可用。

编辑

感谢您发布完整的代码。 new_version_show_window 是在 this.main 上定义的,因此您必须这样访问它:

self.timervar = setTimeout(function () {
self.main.new_version_show_window();
}, 2000);

关于Javascript:设置超时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6458694/

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