在Backbone视图中的每个方法的末尾都需要“返回此”吗?
render: function() {
this.editElem();
// I realize it wouldn't be necessary here, but...
},
renderElem: function() {
this.$el.addClass('foobar');
return this // is this one necessary?
},
修改 这个例子怎么样?
render: function() {
this.editElem();
},
renderElem: function() {
this.$el.addClass('foobar');
return this;
},
答案 0 :(得分:8)
我没有使用Backbone,所以我不确定它是否是必需的(可能不是),但你通常会看到使用这种模式,这样你就可以将函数调用“链接”在一起。它被称为fluent interface。
例如,使用此模式,您可以编写紧凑的代码,如:
myVariable.editElem().somethingElse().anotherMethod();
答案 1 :(得分:4)
引用官方documentation所说的
一个好的约定是在渲染结束时返回它以启用链式调用。
所以没有必要,但这可能是一个好主意。
通常,您会在修改/呈现视图el
的方法中看到它,方法是在其中一种方法中返回this
,以便更轻松地访问视图el
,所以你现在可以做一些像
$("#somelist").append(myview.render().el);
而不是像
这样的两行myview.render();
$("#somelist").append(myview.el);