ES6 - トラバーサルのためのマップオブジェクト、クラス、クラス、継承を拡張

非ES6マップマップアレイのオブジェクト()メソッド

人気の解釈マップはOBJに似たものを格納するために使用されます

書き込み

例えば:

VaRのマップ= 新しい地図(); 
  map.a = 1 
  map.b = 2 
 にconsole.log(マップ)

 

そして配列を見て、同じプロパティが追加しました

VaRの ARR = []; 
  arr.a = 1 
  arr.b = 2 
 にconsole.log(ARR)

 

 

どちらも、非常によく似ています

 結論:地図オブジェクトを、アウト新たな基準値として、RBIは、長さ属性は最大オブジェクトマップに直接添加されているが、実際に値を格納されていないことを示し、0である属性を追加することにより、

RBIを追加、としてだけではなく、サブ要素のマップオブジェクトとして、オブジェクトをマップするプロパティを追加し、理解することができます

 

地図上の検索対象を変更するには、追加および削除

 VaRのマップ= 新しい地図(); 
 map.set( "A"、 "123" )。
 map.set( "B"、 "456" )。//增与改
 にconsole.log(マップ)     
 はconsole.log(map.get( "A"))//查

削除

VaRのマップ= 新しい地図(); 
 map.a = 1 
 map.set( "A"、 "123" )。
 map.set( "B"、 "456" 
 の地図。削除( "A" )//删
  削除map.a //删属性
はconsole.log(マップ) 

 

マップオブジェクトを横断

このオブジェクトは、forループを使用することは絶対に実現不可能である以上ループされます

中でお試しください

VaRのマップ= 新しい地図(); 
 map.a = 1 
 map.set( "A"、 "123" )。
 map.set( "B"、 "456" のためのVARのキーマップ){ 
    にconsole.log(キーは)// 
    はconsole.log([鍵] MAP)// 1 
}

結果は、発現される特性反復処理するループ内に使用して、または非常に良い使用を


 

 これは、新しいES6のために使用することができます

巡回オブジェクトのために、ブラウザは、オブジェクトが繰り返すことはできませんことを教えてくれます

あなたは繰り返すことができます

しかし、主な目的は、マップを循環させるために使用されます

次のように:

 VaRのマップ= 新しい地図(); 
 map.a = 1 
 map.set( "A"、 "123" )。
 map.set( "B"、 "456" のためのVARのマップのキー){ 
    にconsole.log(キー)   // [ "A"、 "123"] [ "B"、 "456"] 
}

キー値は、アレイの形で返され

 

キーの値が配列であるので、それは新しい遊びがあります。 

VaRのマップ= 新しい地図(); 
 map.a = 1 
 map.set( "A"、 "123" )。
 map.set( "B"、 "456" のためのVAR map.entriesの[キー値]()){ 
    にconsole.log(キー)     // のAB 
    にconsole.log(値)   // 123 456 
}

追加:フル書き込みmap.entries()オブジェクトをマップします

 

あなたはそれの価値をトラバースしたい場合は?

マップ换map.values()

次のように再生します:

 VaRのマップ= 新しい地図(); 
 map.a = 1 
 map.set( "A"、 "123" )。
 map.set( "B"、 "456" のためのVARのmap.valuesのヴァル()){ 
    にconsole.log(ヴァル)   // 123 456 
}

あなただけのキー、それを横切るようにしたい場合は?

マップ変更map.keys()
プレイなど:
VaRのマップ= 新しい地図(); 
 map.a = 1 
 map.set( "A"、 "123" )。
 map.set( "B"、 "456" のためのVARのmap.keysのキー()){ 
    にconsole.log(キー)   // AB 
}

 

calss(クラス)

伝統的なjavascriptの、唯一のオブジェクトは、クラスの概念はありません。これは、オブジェクト指向言語のプロトタイプに基づいています。プロトタイプオブジェクトは、新しい共有オブジェクトにそのプロパティによって特徴付けられます。

人は{クラス//は、人クラスの名前を定義 
    コンストラクタ(名前、年齢){ // コンストラクタは、パラメータの受信のために構成され
        、この .nameの=名; // このインスタンスオブジェクトが表す
        この .age = 年齢; 
    } 
    {)(言う// 注意プラス機能払っていない、これはクラスメソッドである
        リターンを、+「私の名前は」この .nameの+「今年」+ この .age +「歳」; 
    } 
}

P1 =新しい人(「ジャックましょう 」、18)//は、オブジェクトのインスタンスの作成
にconsole.logを(p1.say())//私の名前は、今年18歳のジャックで、

注意:

1.クラスの宣言は、機能を追加する必要はありません。

2.方法はコンストラクタではありません

 受け継ぎます

継承する拡張します

人が{クラス//は、人クラスの名前を定義 
    コンストラクタ(名前、年齢){ // コンストラクタは、受信するためのコンストラクタパラメータであり
        、この .nameの=名; // このインスタンス・オブジェクトが表す
        この .ageを= 年齢; 
    } 
    (){//クラスメソッドが言う
        返す   +「私の名前は」この .nameの+「今年」+ この .age +「歳」; 
    }     
} 
のlet P1 = 新しい新しい人(「ジャック」、18 クラス人{}息子拡張し 
 てみましょう息子 = 新新しいソン(「トニー」、20がある
 にconsole.log(son.name)   // トニー

 継承の例2:

{Personクラスの
    コンストラクタ(名前、年齢){ この .nameの=名前;
         この .age = 年齢; 
    } 
    (言う){ リターンは   +「私の名前は」この .nameの+「今年」+ この .age +「歳」
    } 
} 
LETのP1 = 新しい新規人物(「ジャック」、18である
クラス人{ソン延び
     コンストラクタ(名前、年齢、色){ 
          スーパー();    // 書き込み継承を追加する必要があり、これは上に塗布し、       この = .nameの名前;
       この .age = 年齢;
       この .color = 色。
        
        
} } ましょう息子 = 新新しいソン( "ブラック" "トニー"、20、 にconsole.log(son.name) // トニー はconsole.log(son.say()) // 私の名前は、今年のトニー20歳、

 

おすすめ

転載: www.cnblogs.com/wxyblog/p/11276971.html