Javascript 是";把这个退回来;在主干视图中的每个方法之后是否需要?

Javascript 是";把这个退回来;在主干视图中的每个方法之后是否需要?,javascript,backbone.js,Javascript,Backbone.js,主干视图中每个方法的末尾是否需要“returnthis” 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() {

主干视图中每个方法的末尾是否需要“returnthis”

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

我没有使用主干,所以我不确定是否需要主干(可能不需要),但您通常会看到使用该模式,以便可以将函数调用“链接”在一起。这叫一个

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

myVariable.editElem().somethingElse().anotherMethod();

引用官员的话

一个好的约定是在渲染结束时返回该值以启用链接调用

所以没有必要,但这可能是个好主意

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

$("#somelist").append(myview.render().el);
而不是像这样分成两行

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

就我个人而言,我不会在每个方法上都返回
这个
。。只是在
render()
中,因为它是社区标准。删除“returnthis;”from render引发了各种疯狂有趣的问题,但将其从editElem中删除似乎没有效果。主干从不调用您的渲染方法,因此没有任何东西强迫您遵循该约定,只有您自己的代码。感谢链接,我听说过链接方法,但从未“流畅接口”。啊,所以删除this.render;在editElem中似乎没有效果,但如果我这样做,它可能会有效果。很可能,你的
render
方法也是如此,因为它可能正以这种方式使用。