2011-10-26 5 views

答えて

5

バックボーンはプロトタイプを使用します。 Backboneの見た目にもかかわらず、JavaScriptには「クラス構造」はありません。例えば

は:


Backbone.Model.prototype.sayFoo = function(){ 
    alert("foo"); 
}; 

MyModel = Backbone.Model.extend({}); 

m = new MyModel(); 
m.sayFoo(); // => "foo" alert box 

私はバックボーンにすべての時間、およびバックボーンの作成者(ジェレミー・アッシュケナス)も多くのバックボーンでそれらを使用するプロトタイプを使用しています。

「クラス構造」として表示されているのは、オブジェクトのメソッドを定義するために使用されるオブジェクトリテラルです。

これ:

Backbone.Model.extend({ 
    initialize: function(){ 
    } 
}); 

このようまったく同じコードである:

var myDef = { 
    initialize: function(){ 
    } 
}; 

Backbone.Model.extend(myDef); 

唯一の違いは、第二のバージョンでは、私は変数としてオブジェクト定義を宣言の代わりにちょうど通過することですこれはModel extendsメソッドに直接渡されます。

+0

しかし、彼はドキュメントで "class"という言葉を使用しています。 –

+3

ドキュメントはそれほど重要ではありません。彼は代わりに "foo"という言葉を使うことができ、コードがどのように動作するかは変わらないでしょう。 "クラス"の使用は、プロトタイプの継承のすべての詳細に入ることなく、何が起こっているのかを人々が理解するのを助けるためにそこにある可能性が高い。それと、JeremyはCoffeeScriptを作成しました。これは "class"キーワードを持っています。そのため、そこから出る可能性があります。 –

関連する問題