(C)ES6オブジェクトを展開

、オブジェクトのプロパティ、メソッド
1、属性
プロパティの省略形を:
同じオブジェクトが変数の名前や属性属性値をするときは、省略することができます
例えば:

    LET [名前、年齢] = [ 'NZC'、'18で]; 
    LET OBJ = { 
        名:名前、
        年齢:年齢
    }; 
    // 速記方法: 
    LET OBJ = { 
        名前、
        年齢
    }。

プロパティ名の発現は:
[]変数を使用し、オブジェクトのプロパティ名の発現構築物の内部に配置することができる
例:

    TEMP = 'マイ'せ
    LETのmyAgeは = 18であり
    LET OBJ = { 
        [TEMP + '名称']: 'NZC'、     // 類似がmyName: 'NZC' 
        [TEMP + '年齢']:myAge     // 同様myAge:myAgeこの場合、myAgeと呼ばれる追加属性が、しかし[TEMP +「年齢」]と略記することができない- > 名と属性値を属性変数名の瞬間に異なります 
    }。


2、方法
A、及び速記法を書いて、さまざまな
オブジェクトミューテータメソッド名とメソッド名が同じである場合は、オブジェクトは省略することができます方法の
例:

    機能getAge(){}; 
    OBJ LET = { 
        のgetName(){}     //   のgetName:関数(){}は[速記を省略することができる:関数] 
        getAge、     // getAge:getAge短縮形 
        sayHi :() => {}        // 矢印ES6関数を使用し 
    }。    

注:
    [ES6を矢印この関数の関数を指す矢印宣言 ]このドメインの役割が向けられた親モジュール
    ES6を引数に関数引数の矢印を引数使用せずに、保存されていない
    
Bを、方法[nameプロパティは、の(機能)関数名を返す ]
例:

    機能テスト(){}; 
    LET OBJ = {
         // その外部機能検査のための基準アドレス()アドレス空間の最初の関数定義を除いて、同様の機能定義された4つの方法を以下の
        テスト
         // テストを(){} 
        // テスト:関数(){} 
        // テスト:()=> {} 
    }; 
    にconsole.log(obj.test.name);         // テスト


図3に示すように、新しいオブジェクトのプロパティおよびメソッド
Object.is(PARAM1、PARAM2)    [ 分析は=== 2つのパラメータの値が一致している、ブール値を返す ]    
この方法は、合同と異なる===:
A、NaNにして決定されますNaNはtrueに値を返す
EG:

    Object.is(NaNでは、NaN);     // 数に基づいて、真の真ますisNaN(NaNで)//にはNaNであります

B、+0と-0決意結果がtrueに返され
EG:

    Object.is(+ 0、-0)。    // 


Object.assign(targetObjは、O1、O2 ...  )    [ オブジェクトのコピー(割り当てられた値) ](送信割り当てを送信するアドレス割り当ての値との差
A、パラメータであり、オブジェクトのアドレス空間戻り
マルチパラメータとしてBを、第targetObjはパラメータにコピーまたは複数のオブジェクトを取得する、すべてのプロパティおよびメソッド時間がオブジェクトtargetObjは戻り
C、複数のパラメータ、オブジェクトコピー機能(関数)、配列(アレイ)、オブジェクト(オブジェクトは)まだアドレス割り当て、送信しているの最後に出現する値であり、同じ属性名
などを:

    // 浅いコピーObject.assign()オブジェクト、マージ対象 
    LET OBJ = { 
        名: 'zhangsan' 
        友人:[ L、2,3 ]、
        sayName:関数(){} 
    }; 

    // せOBJ = OBJ2 ; 
    LET OBJ2 = Object.assign(OBJ)
    はconsole.log(OBJ === OBJ2);   // trueに 
    obj2.name = 'NZC' ; 

    // マージの対象 
    せOBJ3 = Object.assign({}を、OBJ) ; 

    にconsole.log(OBJ3 === OBJ); // falseに 
    はconsole.log(obj3.sayName === obj.sayName); // trueに
    console.log(obj3.firends === obj.firends)。// 

    LET OBJ4 = {}; 
    Object.assign(OBJ4、OBJ、OBJ2)。
    console.log(OBJ4)。
Object.assign例


__proto__      内部属性は、[現在のオブジェクトのプロトタイプオブジェクトを指す一般的に直接使用しない }

オブジェクト。setPrototypeOf(OBJ、プロトタイプ)     [ オブジェクトのプロトタイプオブジェクトのプロトタイプポイントを設定 ]

オブジェクト。getPrototypeOf(OBJ)     { オブジェクトのプロトタイプオブジェクト取得 ]

オブジェクト。キー(OBJ)     { すべてのプロパティ名のオブジェクトの配列の反復子を返す ]

Object.values(OBJ)         { イテレータオブジェクトは、すべてのプロパティ値の配列を含ん返す ]

Object.entries(OBJ)     { 戻りオブジェクトは属性名は、属性値キー値の形でオブジェクトのイテレータ配列 ] [KEY1、値1]、[ KEY2、値2]]
注:
    内部値を得るため-のトラバースイテレータオブジェクトを使用することができる
例:

    {(Object.entries(OBJ)の[キー、値]せ)
        ;にconsole.log(キー、値)     // OBJプロパティ名の鍵、対応する属性値の値 
    }


反復の-FOR     [ 用インオブジェクト横断の方法と同様
A、及びアレイを介してクラスオブジェクトの配列であることができる
B、直接オブジェクトをトラバースするために使用することができないが、オブジェクトは、変換後のイテレータアレイエントリを横断することができ
、例えば:

    OBJ = LET { 
        名: 'NZC' 
        年齢: 18である
        sayName(){} 
    }; 
    // すべてのプロパティ名を印刷対象トラバース
    するための{(LET Object.keys(OBJ)のキー)
        (キー)にconsole.log。
    } 
    // 横断印刷オブジェクトのすべての属性値の
    ための{(LET Object.values(OBJ)の値)
        にconsole.log(値); 
    } 
    // トラバーサルは、直接オブジェクトを横切る印刷できない名、印刷オブジェクト[]の属性値
    のために( LET Object.entries(OBJ)){の[キー、値] 
        にconsole.log(キー、値); 
    } 
    // 印刷オブジェクト[[ '名前'、 'NZCの二次元アレイにキーと値の形態 ]'、[ '時代'、18]、[ 'sayName'、[機能:sayName]]]
    console.log(Object.entries(OBJ))。



おすすめ

転載: www.cnblogs.com/nzcblogs/p/11360861.html