gpt4 book ai didi

javascript - self.el 与 this.el

转载 作者:行者123 更新时间:2023-11-30 07:43:51 27 4
gpt4 key购买 nike

我正在关注 backbone.js tutorial并遇到了 2 个函数 initialize()render()initialize() 在附加一些 html 时使用了 $(self.el).append()render() 使用了 $(this .el).append().我对差异感到困惑,希望得到解释,谢谢!

JS代码

// Views
window.WineListView = Backbone.View.extend({

tagName:'ul',

initialize:function () {
this.model.bind("reset", this.render, this);
var self = this;
this.model.bind("add", function (wine) {
$(self.el).append(new WineListItemView({model:wine}).render().el);
});
},

render:function (eventName) {
_.each(this.model.models, function (wine) {
$(this.el).append(new WineListItemView({model:wine}).render().el);
}, this);
return this;
}
});

最佳答案

第一个使用 self 在事件触发时范围发生变化时保持对 this 的引用。在匿名函数(对于事件处理程序)内,this 将引用触发事件的元素,而不是您的 Backbone Controller 。

在第二种情况下不需要引用。

关于javascript - self.el 与 this.el,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11014761/

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