gpt4 book ai didi

javascript - 使用 setInterval 调用原型(prototype)函数的问题

转载 作者:行者123 更新时间:2023-11-30 16:05:07 25 4
gpt4 key购买 nike

<分区>

我制作了一个 Bot 的原型(prototype)类。我的问题是,在创建它之后,我将其称为 init()。它在警报中正确返回此值“a 5000”。但是,当该原型(prototype)函数调用 getUpdates() 时,它不再达到此值并给出“b undefined”。我什至试过 this.self = this;在构造函数中但没有运气。

经过努力,我发现在 setInterval 的 self.getUpdates 调用上添加 () 使其正确获取值然后是另一个问题,setInterval 只循环一次。我试过制作一个 setTimeout 并让它在 getUpdates 中调用自己但是得到了“太多的递归 script.js:30:1”。我有时会遇到“未捕获的异常:内存不足”

我最初使用“var privateVars <-> this.methods”没有太多问题,但后来改用“this.publicVars <-> Class.prototype.methods”,因为我读过它们应该更快,内存更少,但是这个原型(prototype)方法给我带来了问题。我试过浏览谷歌但没有运气。我更愿意在 init() 上启动计时器。

这是我的代码:

var Bot = function () {
"use strict";
this.updateInterval = 5000;
this.updateTimer = null;
};
Bot.prototype.getUpdates = function () {
"use strict";
var self = this;
alert("b " + self.updateInterval); // returns "b undefined"
};
Bot.prototype.init = function () {
"use strict";
var self = this;
$.get(/* pretend url is here*/, function (data, status) {
alert("a " + self.updateInterval); // returns "a 5000"
self.updateTimer = setInterval(self.getUpdates, self.updateInterval);
});
};
window.bot = new Bot();
window.bot.init();

如有任何帮助或建议,我们将不胜感激。但我认为,如果原型(prototype)包含计时器,它就不是可行的方法。

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