20、ES 6属性のエルゴードは全部で5つの方法があります.オブジェクトの属性を遍歴することができます.
1044 ワード
属性の巡回
ES 6は全部で5つの方法でオブジェクトの属性を遍歴することができます.
(1)for…in
(2)Object.keys(obj)
(3)Object.getOwn PropertyNames(Obj)
(4)Object.getOwn PropertySymbors(Obj)
(5)Reflect.ownKeys(obj)
以上の5つの方法は対象のキー名を遍歴して、同じ属性遍歴の順序規則を守ります.
まず、すべての数値キーを巡回して、数値の昇順に並べます.次にすべての文字列キーを巡回して、加入時間の昇順に並べます.最後にすべてのSymbolキーを巡回して、加入時間の昇順に並べます.Reflect.ownKeys([[Symbol]]:0,b:0,10:0,2:0,a:0])//['2','10','b','a',Symbol()
上記のコードでは、
ES 6は全部で5つの方法でオブジェクトの属性を遍歴することができます.
(1)for…in
for...in
は、オブジェクト自身のエニュメレート・属性(Symbol属性を含まない)を巡回巡回巡回する.(2)Object.keys(obj)
Object.keys
は、オブジェクト自体(引き継ぎを含まない)エニュメレート・属性(Symbol属性を含まない)のキー名を含む配列を返します.(3)Object.getOwn PropertyNames(Obj)
Object.getOwnPropertyNames
は、オブジェクト自体の属性(Symbol属性を含まないが、列挙できない属性を含む)のキー名を含む配列を返します.(4)Object.getOwn PropertySymbors(Obj)
Object.getOwnPropertySymbols
は、オブジェクト自体のSymbol属性のキー名を含む配列を返します.(5)Reflect.ownKeys(obj)
Reflect.ownKeys
は、オブジェクト自体のすべてのキー名を含む配列を返します.キー名がSymbolまたは文字列であっても、列挙可能であるかどうかに関わらず.以上の5つの方法は対象のキー名を遍歴して、同じ属性遍歴の順序規則を守ります.
まず、すべての数値キーを巡回して、数値の昇順に並べます.次にすべての文字列キーを巡回して、加入時間の昇順に並べます.最後にすべてのSymbolキーを巡回して、加入時間の昇順に並べます.Reflect.ownKeys([[Symbol]]:0,b:0,10:0,2:0,a:0])//['2','10','b','a',Symbol()
上記のコードでは、
Reflect.ownKeys
方法は、パラメータオブジェクトのすべての属性を含む配列を返します.この配列の属性順序は、まず数値属性2
および10
であり、次に文字列属性b
およびa
であり、最後にSymbol属性である.