7

Backbone.js の bind() メソッドと on() メソッドの違いは何ですか?

on() のドキュメント: backbone.js のメソッドに関するドキュメント

bind() のドキュメント: underscore.js のバインド メソッドのドキュメント

オブジェクトのカスタム イベントをバインドするには、どちらを使用する必要がありますか?

使用例:

this.bind('myEvent', this.render, this);
this.on('myEvent', this.render, this);
4

2 に答える 2

15
this.bind('myEvent', this.render, this);
this.on('myEvent', this.render, this);

これらはまったく同じで、アンダースコアbind機能とは関係ありません。

バックボーンソースからのコードは次のとおりです。

// Aliases for backwards compatibility.
Events.bind   = Events.on;
Events.unbind = Events.off;

したがって、コードの両方の行で、同じ関数を呼び出しています。

于 2013-04-07T17:07:45.753 に答える
3

アンダースコアの _.bind は、Backbone イベント オブジェクトの bind とは関係ありません。(またはアンダースコア)

アンダースコアの _.bind は、関数をコンテキストにバインドする (クロージャーでラップする) 場合に使用されます。したがって、関数が呼び出されたときにコンテキスト (this) は変更されません。

バックボーンのドキュメントでは、イベントの bind メソッドは on メソッドのエイリアスであると明示的に述べています。では、なぜアンダースコアでバインド定義にリンクするのでしょうか?

http://backbonejs.org/#Events-on

于 2013-04-07T17:08:14.207 に答える