02 JSのプロトタイプチェーン

1つのJSのプロトタイプチェーンは、トピックの周りに開いていません。直接対話に。

/ * * 
 *プロトタイプチェーン内の1 JSはどのようにのようなものでしょうか?別のクラスのプロトタイプチェーン付きとクラスなし。
 * / 

 のConst UTIL =必要とする( 'utilの' );
  関数A(){ 
    console.info( "I AM A" ); 
 } 

 関数B(){ 
    console.info( "I AM B" ); 
} 
    
関数C() { 
    console.info( "I AM C" ); 
} 

util.inherits(B、A); 
util.inherits(C、B); 
クラス{CAの
    コンストラクタ(){ 
        console.info( "私はCA AM" ); 
    } 

    DOCA(){ 
        console.info( "DOCA"
    }
} 

クラスCBはCA {延び
    コンストラクタ(){ 
        スーパー()。
        console.info( "私はCBです" ); 
    } 

    doCB(){ 
        console.info( "やるCB" )。
    } 
} 

クラスCCはCB {延び
    コンストラクタ(){ 
        スーパー()。
        console.info( "私はCC" ); 
    } 

    doCC(){ 
        console.info( "私はdoCC午前" )。
    } 
} 

// 原型链继承如下:
VARの C = 新しいC(); 
(C .__ proto__ console.info === C.prototype)。
console.info(C .__プロト__.__ proto__ === B.prototype)。
console.info(C .__プロト__.__プロト__.__ proto__ === A.prototype)。
console.info(C .__プロト__.__プロト__.__プロト__.__ proto__ === のObject.prototype)。
console.info(C .__プロト__.__プロト__.__プロト__.__プロト__.__ proto__ === NULL )。

// クラス
のvar CC = 新しいCC(); 
console.info(CC .__ proto__ === CC.prototype)。
console.info(CC .__プロト__.__ proto__ === CB.prototype)。
console.info(CC .__プロト__.__プロト__.__ proto__ === CA.prototype)。
console.info(CC .__プロト__.__プロト__.__プロト__.__ proto__ === のObject.prototype); 
console.info(CC .__プロト__.__プロト__.__プロト__.__プロト__.__ proto__ === NULL ); 

// 以下のクラス階層であります。クラスおよび非クラスが異なる 
console.info( "クラス階層" ); 
console.info(C.prototype.constructor === C); // 構成C =自体のプロトタイプ 
console.info(C .__ proto__ = Function.prototype ==); // __proto__プロトタイプ点関数のすべてのクラス、プロトタイプの即ち主要構成。
console.info(機能.__ proto__ === Function.prototype); //
 
console.info( "クラスを持つクラスの継承関係" ); 
console.info(CC .__ proto__ === CB); //クラスのポイントとCCの__proto__、CB、最終的には最重要指名手配関数のプロトタイプ。
console.info(CC .__プロト__.__ proto__ === CA); 
console.info(CA .__ proto__ === Function.prototype)。

プロトタイプチェーンは、次の点に留意してくださいします:

1.すべてのものは、__proto__を持っています

2.プロトタイププロトタイプクラス=クラス。プロトタイプクラス=クラスを構築します。

__proto__の前記小さなCプロトタイププロトタイプ= C、__protoのC __ = Bとプロトタイププロトタイプ、プロトタイプ__proto__のB =プロトタイプのプロトタイプA = __proto__オブジェクトおよびオブジェクトのプロトタイプ_ _proto__ = NULL;これはプロトタイプチェーンである、それは非常に簡単です。

4.継承クラス、__proto__ = CB、__proto__ =関数プロトタイプに__proto__ = CA、CAのCBのCC。

Util.inherits __proto__プロトタイプに等しい相続、C、B、A、機能機能を使用。

限りもっと練習、心の中のすべての上記のように、一つはプロトタイプチェーンを把握することができます。

:あなたは上記を読んでいない場合は、を参照することができhttps://blog.csdn.net/m0_37589327/article/details/78655038

おすすめ

転載: www.cnblogs.com/gongzhuiau/p/11494230.html