0

在 Backbone 视图中的每个方法的末尾是否需要“return this”?

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

2 回答 2

8

我没有使用过 Backbone,所以我不确定它是否需要(可能不需要),但您通常会看到使用的模式,以便您可以将函数调用“链接”在一起。它被称为流畅的界面

例如,使用这种模式,您可以编写紧凑的代码,例如:

myVariable.editElem().somethingElse().anotherMethod();
于 2012-08-13T20:39:38.780 回答
4

引用官方文档所说的

一个好的约定是在渲染结束时返回 this 以启用链式调用。

所以不,这不是必需的,但这可能是一个好主意。

通常,您将在修改/渲染视图的方法中看到它el,通过返回this其中一种方法,您可以更轻松地访问视图el,因此您现在可以执行类似的操作

$("#somelist").append(myview.render().el);

而不是像两行一样

myview.render();
$("#somelist").append(myview.el);
于 2012-08-13T20:44:38.653 回答