gpt4 book ai didi

javascript - Backbone : Correct way of passing 'this' reference to anon functions in success/error callbacks

转载 作者:可可西里 更新时间:2023-11-01 01:28:36 24 4
gpt4 key购买 nike

给定下面的主干 View 函数,将 this(即当前 View )传递给回调中定义的匿名函数的正确方法是什么?

addSomething: function(e) {
var newSomething= this.model.somethings.create({
someProperty: xxx
}, {
success: function(m, response) {
this.doSomething(); //***HERE****
},
error: function(m, response) {
//Error
}
});
},

没有和变化,anon函数中的this设置为window。

我可以这样设置一个引用:

var thisView = this;

然后在anon函数中直接引用thisView而不是this,但这看起来不是很优雅。有没有更好的办法?

最佳答案

为了更好地组织我的代码并解决这个问题,我从不直接将成功和错误回调与我的调用放在一起。我总是将它们拆分成各自的功能。这让我保持代码干净,并使用 _.bindAll 方法来确保我有 this 的正确上下文。

SomeView = Backbone.View.extend({
initialize: function(){
_.bindAll(this, "createSuccess", "createError");
},

addSomething: function(e) {
var newSomething= this.model.somethings.create({someProperty: xxx}, {
success: this.createSuccess,
error: this.createError
});
},

createSuccess: function(m, response) {
this.doSomething();
},

createError: function(m, response) {
//Error
}
});

关于javascript - Backbone : Correct way of passing 'this' reference to anon functions in success/error callbacks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7598988/

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