2012-02-08 8 views
3

javascriptを使用してooの概念に新しい。単純継承Javascript単純継承メソッド

標準原型継承

function Person(){} 
function Ninja(){} 
Ninja.prototype = new Person(); 
// Allows for instanceof to work: 
(new Ninja()) instanceof Person 

この程度やりがいは何上記

以上のウェブサイトからの声明ejohn.orgから は、しかし、私たちは本当にしたいすべてが のメリットであるということです'instanceof'ではなく、 Personオブジェクトをインスタンス化してそのコンストラクタを実行するコスト全体ではありません。これに対処するには プロトタイプの クラスを使用する唯一の目的でクラスをインスタンス化する必要があるときは常に、trueに設定されている初期化中の変数 があります。

上記の文は何を意味しますか?

john-resigによる単純な継承の利点は、どれも標準プロトタイプの継承に比べて何ですか?

var fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/ 

これは何のためのテストですか?

誰でも自己実行機能の流れを説明できますか?コードが注釈を付けているが、私はそれは意味フロー

答えて

2

をたどることができませんでした、私たちはその偽のコンストラクタ関数initを起動することなく、instanceofを使用するクラスをインスタンス化することができます。 2番目のクエリに

Fredprovides an answer ...

XYZのテストは、ブラウザが機能のテキスト 体を検査できるかどうかが決まります。可能であれば、 が実際にこの本体のどこかでthis._super() を呼び出すと、オーバーライドされたメソッドをラップするだけで最適化を実行できます。 _superをサポートするには追加のクロージャと 関数呼び出しのオーバーヘッドが必要なので、必要がない場合はそのステップ をスキップするといいです。