バックボーンはアンダースコアとjqueryに多少依存していることを私は知っています。以下の2行に違いはありますか?
app.notifications = _.extend({}, Backbone.Events);
と
app.notifications = Backbone.Events.extend({});
それらが同じでない場合、どのように異なりますか?
バックボーンはアンダースコアとjqueryに多少依存していることを私は知っています。以下の2行に違いはありますか?
app.notifications = _.extend({}, Backbone.Events);
と
app.notifications = Backbone.Events.extend({});
それらが同じでない場合、どのように異なりますか?
Backbone.Events.extendが存在しないため、代わりにBackbone.Modelを参照します。
_.extend(target, mixin1, mixin2)
プロパティをターゲットオブジェクトにコピーします
Backbone.Model.extendはsubclass
Backbone.Modelに移動します。基本的に、プロトタイプに提供されたプロパティを持つコンストラクター(関数)を作成します。これにより、新しいクラスのインスタンスを作成できます
var Person = Backbone.Model.extend({name: 'yourName'});
var me = new Person();
alert(me.name);
_.extend
失敗する間
var Person = _.extend({name: 'yourName'}, Backbone.Model);
var me = new Person(); //error b/c Person is a regular object
alert(me.name);
つまり、Backbone.Model.extendは新しいコンストラクター(関数)を作成し、_。extendは既存のオブジェクトを変更します。
var modified = {};
alert(modified === _.extend(modified, Backbone.Model)); //true
alert(modified === Backbone.Model.extend(modified)); //false