gpt4 book ai didi

javascript - setInterval 中引用成员函数

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

我有一个 Backbone 模型,看起来有点像这样:

var myModel = Backbone.Model.extend({
watch : function() {
this.watcher = setInterval("this.refetch", 5000);
}

refetch : function() {
//do something
}
});

setInterval 方法实际上不起作用,因为我想,this.refetchsetInterval 调用中无效。 setInterval("refetch", 5000); 也不起作用。

我现在正在做的是:

watch : function() {
var that = this;
setInterval(function(){
that.refetch();
}, 5000);
}

有没有更好的方法来做到这一点,这样我就不需要使用that

最佳答案

因为 Backbone 已经自带了 underscore.js,所以使用它。在您的情况下,可以使用 _.bind 将上下文绑定(bind)到区间函数:

setInterval( _.bind( function(){this.refetch();}, this), 5000);

这是更好的方法,不仅因为它更短,而且因为它可以防止 that 别名在嵌套范围中可见,这可能会导致各种难以捕获的错误。请参阅 idiomatic.js 风格指南,“这方面的面孔”部分:https://github.com/rwldrn/idiomatic.js/

关于javascript - setInterval 中引用成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13667599/

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