19

私はバックボーンがアンダースコアとjqueryに多少依存していることを知っています。下の2つの行に違いはありますか?extend()アンダースコアとバックボーンを使用して

app.notifications = _.extend({}, Backbone.Events); 

app.notifications = Backbone.Events.extend({}); 

彼らは同じされていない場合は、どのように違うのですか?

+1

Backbone.Events.extendが – jermel

+0

0.9.9今あなたがhttp://backbonejs.org/?0-9-9#changelogイベントを拡張することができますが存在していないかなり確信 –

答えて

33

Backbone.Events.extendは存在しません。 代わりにBackbone.Modelを参照します。

_.extend(target, mixin1, mixin2)

Backbone.Model.extendは、基本的にその原型ご提供特性を有しているコンストラクタ(機能)を作るsubclass Backbone.Modelに起こっているターゲットオブジェクトにプロパティをコピーしようとしています。 _.extendは修正しながら、これは、短いBackbone.Model.extendで

var Person = _.extend({name: 'yourName'}, Backbone.Model); 
var me = new Person(); //error b/c Person is a regular object 
alert(me.name); 

は新しいコンストラクタ(機能)を作成し、失敗する

var Person = Backbone.Model.extend({name: 'yourName'}); 
var me = new Person(); 
alert(me.name); 

_.extendながら、あなたの新しいクラスのインスタンスを作成することができます既存のオブジェクト。

var modified = {}; 
alert(modified === _.extend(modified, Backbone.Model)); //true 
alert(modified === Backbone.Model.extend(modified)); //false 
関連する問題