クラスのJS

// ES5クラスは
// 単純なクラス
    //は(人物機能){ 
    //      this.name = 'zhangsan'; 
    //      this.age = 18であり; 
    // } 
    // VARのP =人新しい新しいです( ); 
    // はconsole.log(p.anme); 

// 。プロトタイプ方法増加コンストラクタとB鎖
    // 人数(機能){ 
    //      this.name = 'zhangsanを'; 
    //      this.age = 18です。
    //      this.run =関数(){ 
    //          はconsole.log(this.name + 'RUNに'); 
    //      } 
    // } 
    // プロパティ上記プロトタイプチェーンは、複数のインスタンスコンストラクタによって共有されない
    // Person.prototype.sex = 'M'; / *プロパティ* /
    // Person.prototype.work =関数(){/ *方法の例は、* / 
    //      はconsole.log(this.name +の作業で'); 
    // } 
    // VAR新しい新しいP =人(); 
    // P. RUN(); 
    // p.work(); 

// 静的メソッド内のCクラス
    //は(人物機能){ 
    //      this.name = 'zhangsan'; 
    //      this.age = 18であり; 
    //      この。 =機能RUN(){ 
    //          はconsole.log(this.name + 'RUNに'); 
    //      } 
    // } 
    // Person.getGo =関数(){ 
    //      はconsole.log( '静的メソッドI')
    // } 
    //Person.getGo(); / *静的メソッド呼び出し* / 

// 内部d.es5継承
    // 関数人(){ 
    //      this.name = 'zhangsan'; 
    //      this.age = 18であり; 
    //      この。 =機能RUN(){ 
    //          はconsole.log(this.name + 'RUNに'); 
    //      } 
    // } 
    // Person.prototype.sex = 'M'; / *属性* / 
    // Person.prototype。仕事=関数(){/ *メソッドの例は、* / 
    //      はconsole.log(this.name +の作業で'); 
    // } 
    // //オブジェクトはプロトタイプチェーン組み合わせパターンをマスカレード(ウェブPersonクラス継承クラスを定義+ )
    // )ウェブを(機能{ 
    //      Person.call(本)/ *オブジェクトマスカレード継承* / 
    // }
    // VAR新しい新しいウェブW =(); 
    // w.run(); //コンストラクタオブジェクトは内部プロパティとメソッドを継承できるマスカレード
    // w.work();しかし、上部およびプロトタイプチェーンのプロパティを継承しない//方法

// プロトタイプチェーンの継承でe.es5継承
    //は人を(機能){ 
    //      this.name = 'zhangsan'; 
    //      this.age = 18であり; 
    //      this.run =関数(){ 
    //          console.log(this.name + 'RUNに'); 
    //      } 
    // } 
    // Person.prototype.sex = 'M'; / *属性* / 
    // Person.prototype.work =関数(){/ *方法の例* / 
    //      はconsole.log(「職場で」this.name +); 
    // } 
    // //ウェブPersonクラスは、クラス(オブジェクト+プロトタイプチェーンの組み合わせパターンをマスカレード)を継承定義
    //はウェブ機能(){} 
    //   //プロトタイプチェーン継承:属性およびメソッドのプロトタイプチェーンのプロパティとメソッドを継承できるコンストラクタ関数が上側継承できる
    // Web.prototype新しい新しい=人を(); 
    // VAR =()ワット新しい新しいWeb; 
    // w.work(); // 

// Fのプロトタイプチェーンの継承の問題。?
    //は(名前、年齢){人数機能
    //      ; this.name =名
    //      this.age =年齢; 
    //      this.run =関数(){ 
    //          はconsole.log(this.name + 'ランで') ; 
    //      } 
    // } 
    // Person.prototype.sex = 'M'; / *属性* / 
    // Person.prototype.work =関数(){/ * * /方法の例
    //      はconsole.log(ここ。 「職場で」名前+);
    // } 
    // // Personクラス継承クラスのウェブを定義する(+ポーズオブジェクトのプロトタイプチェーンの組み合わせパターン)
    // のWeb機能(名前、年齢){} 
    // //プロトタイプチェーン継承:内部コンストラクタを継承しますメソッドとプロパティは、プロパティおよび上部プロトタイプチェーンの方法継承することができる
    // Web.prototype新しい新しい=人を(); 
    // VAR新しい新しいウェブWは=(「暁」、18がある); //インスタンス化可能サブクラスを親が与えることができないときパラメータの受け渡しクラス
    // VAR新しい新しいWeb W1 =( 'Xiaohong' ,. 17); 
    // w.work(); //作業時には不定

// 。G +プロトタイプチェーン組成遺伝パターンのコンストラクタ
    機能人を(名前、年齢){
         この .nameの= 名;
         この .age = 年齢;
         この .RUN = 関数(){ 
            にconsole.log(この.nameの+ 'RUNに' ); 
        } 
    } 
    Person.prototype.sex = 'M'; / * 属性* / 
    Person.prototype.work = 関数(){ / * 方法の例は、* / 
        にconsole.log(この .nameの+「で作業' ); 
    } 
    // ウェブPersonクラスを定義し、クラス(オブジェクトマスカレード+プロトタイプチェーンの組み合わせパターン)を継承
    機能するウェブ(名前、年齢){ 
        Person.call(これは、名前、年齢)は// 継承されたインスタンスのサブユニットをマスカレードオブジェクトクラスは親クラスへの参照を渡すことができ
    }
     // プロトタイプチェーン継承を:コンストラクタ関数は、属性を継承することができ、方法は上部プロトタイプチェーンの属性およびメソッドを継承できる 
    Web.prototype = 新しい新)(人;    //または= Person.prototype Web.prototype; 
    VARの K = 新しい新しいウェブ( 'キビ'、20がある); 
    k.run(); // キビのRUN 
    k.work(); // キビの仕事

 

おすすめ

転載: www.cnblogs.com/qxp140605/p/11531162.html