2
私はBackbone.jsの新機能ですからbackbone.jsは本質的にクラス構造をjavascriptに持っていますか?もしそうなら、後ろのステップではない? Javascriptのプロトタイプは、Douglas Crockfordによればより強力です。プロトタイプの代わりにクラス構造を持つBackbone.jsは後ろのステップではありませんか?
私はBackbone.jsの新機能ですからbackbone.jsは本質的にクラス構造をjavascriptに持っていますか?もしそうなら、後ろのステップではない? Javascriptのプロトタイプは、Douglas Crockfordによればより強力です。プロトタイプの代わりにクラス構造を持つBackbone.jsは後ろのステップではありませんか?
バックボーンはプロトタイプを使用します。 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メソッドに直接渡されます。
しかし、彼はドキュメントで "class"という言葉を使用しています。 –
ドキュメントはそれほど重要ではありません。彼は代わりに "foo"という言葉を使うことができ、コードがどのように動作するかは変わらないでしょう。 "クラス"の使用は、プロトタイプの継承のすべての詳細に入ることなく、何が起こっているのかを人々が理解するのを助けるためにそこにある可能性が高い。それと、JeremyはCoffeeScriptを作成しました。これは "class"キーワードを持っています。そのため、そこから出る可能性があります。 –