在Backbone视图中的每个方法之后都需要“返回此”吗?

时间:2012-08-13 20:36:27

标签: javascript backbone.js

在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;
},

2 个答案:

答案 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);