ES6クラス(基本的な文法+メソッド)

静的プロパティと静的メソッド

1.ないクラスインスタンスの属性とメソッドは、自分のクラスの持つ
唯一のクラスを呼び出して2

静的従来の方法と同じ名前のメソッド、ないとの競合
、静的なキーワード(静的メソッド)

静的プロパティ
、クラス名属性名=属性値。


 

静的プロパティの使用例:

    // 職業
    クラス職業{ 

    } 

    クラス文字{ 
        コンストラクタ(PFS){ 
            この .pfs = PFS; 
        } 
    } 
    // 静的プロパティが配置ない 
    Character.configを= { 
        職業:{
             'コンジュラー':1  'アーチャー' :2 
        } 
    } 
    // クラスのインスタンスを作成し
    、新たな新しいキャラクター(Character.config.profession [「コンジュラーを」])。

適用例静的メソッド

    {Personクラス
         // 静的メソッドは、
        {フォーマット(プログラマー)を静的
            programmer.haveGirlFriend = trueに
            programmer.hair = trueに; 
        } 
    } 
    // プログラマカテゴリ
    クラスプログラマ{ 
        コンストラクタ(){ 
            この .haveGirlFriend = falseにこの .hair = falseに; 
        } 
    } 
    // 一般的なカテゴリにプログラマのクラスインスタンス 
    CONST =プログラマ新しい新しいプログラマ();  
    Person.format(プログラマ)。
    にconsole.log(プログラマ)。

以下のような式
Pは、クラス内からアクセスすることができる
独自のクラスであります

    人=定数クラスP { 
        コンストラクタ(){ 
            ペンシルベニア = 1 ; 
            はconsole.log(P === 人)
            はconsole.log( 'I鳩手!! GUGU区!!' ); 
        } 
    } 

    新しい新しい人() ; 

    // 自動的に行わ 
    PERSON1 = CONSTの新しい新クラスP { 
        コンストラクタ(){ 
            ペンシルベニア = 1 ; 
            はconsole.log( 'I鳩手!! GUGU区を!!' ); 
        } 
    }();

セッターゲッター
同様の特性がフックを提供するために、
いくつかの余分なものは、プロパティの値と設定を取得するために行うときに、プロパティ値


 

ゲッターES5 /セッター
1.オブジェクトリテラル内のget / setメソッドを書きます

    CONST OBJ = { 
        _name: '' 

        取得名(){ 
            にconsole.log( '123' )。
            戻る この._nameを。
        }、

        セット名(ヴァル){ 
            この ._name = ヴァル。
        } 
    } 
    obj.name = 222 
    console.log(OBJ)。

2. Object.defineProperty

    VAR OBJ = { 
        _name: '' 
    }。
    Object.defineProperty(OBJ、 '名称' 、{ 
        得る:関数(){ 
            にconsole.log( '正在访问名' );
             戻り 、この._name; 
        }、
        セット:関数(ヴァル){ 
            にconsole.log(「正在修改名' );
             この ._name = ヴァル; 
        } 
    })。
    obj.name = 10 
    console.log(obj.name)。

ES6の書き込み:

    {Personクラスの
        コンストラクタ(){ 
            この ._name = '' ; 
        } 
        GET名(){ 
            にconsole.logは( ''名前のために利用可能である); 

            リターン `私の名前は$ {で、この; ._name`} 
        } 
        SET名(ヴァル){ 
            にconsole.log( '修飾されている名' ); 

            この ._name = ヴァル; 
        } 
    } 
    人CONST = 新しい新;パーソン()
    PERSON.NAME = 'エース' ; 
    にconsole.log(PERSON.NAME)。
    クラスAudioPlayer { 
        コンストラクタ(){ 
            この ._status = 0 この .status = 0 ;
            この.INIT(); 
        } 
        のinit(){ 
            CONSTオーディオ = 新しいオーディオ()。
            audio.src = '....' ; 
            audio.oncanplay =()=> { 
                audio.play()。
                この .status = 1 
            } 
        } 
        (ステータスを取得){ 
            戻り 、この._statusと、
        } 
        のセット状態(ヴァル){
            STATUS_MAP CONST = {
                 0: 'ポーズ'  1 'プレイ'  2 '読み込み' 
            }; 
            //は、コピーボタンを変更する 
            。document.querySelector( 'アプリ.play-BTN位')のinnerText = STATUS_MAP [ヴァル];
             この ._status = ヴァル; 
        } 
    } 
    オーディオCONST = 新しい新しい AudioPlayer()。

名前のクラス名

    クラス虎{ 

    } 
    はconsole.log(Humen.name)。// 

    CONST虎 = クラスP { 

    } 
    はconsole.log(Humen.name)。// P

新しいキーワードクラスの後ろにnew.targetポイント

    クラスの車{ 
        コンストラクタ(){ 
            はconsole.log(新しい.TARGET)。
        } 
    } 
    新しいカー()。

シンタックスシュガー

    機能カー(){
         IF((!この instanceofは{車))
             スローエラー( 'コールが、新しいキーの車を使用する必要があります' ); 
        } 
    } 
    新しいカー();

シミュレーションは、ES5で:
コンストラクタは、
空のオブジェクトを作成1.
プロトタイプ空のオブジェクトとして2 prototypeプロパティコンストラクタ
3.この割り当ての空のオブジェクト
4つのエグゼクティブ関数
はこの値を返さない関数が返された場合5. [nullのオブジェクトの前に戻ります]

    機能人(名前、年齢){
         この .nameの= 名前;
        この .age = 年齢; 
    } 
    にconsole.log(新しい人( '张三'、11))。
    関数コンストラクタ(FN、引数){
         // FNにプロトタイプとして作成されたオブジェクト
        VAR _this = Object.create(fn.prototype);
         //は、パラメータ渡し関数実行
        VAR RES = fn.apply(_this、引数)を、
         復帰 RES ?RES:_thisは; 
    } 
    機能人(名前、年齢){
         この .nameの= ;名前
         この .age = 年齢; 
    } 
    Person.prototype.say = 関数(){ 
        にconsole.log( + '私の名前は' この.nameの)を; 
    } 
    VAR人=コンストラクター(人、[ '张三'、12 ])。
    console.log(人)。

おすすめ

転載: www.cnblogs.com/chenyingying0/p/12164093.html