20、ES 6属性のエルゴードは全部で5つの方法があります.オブジェクトの属性を遍歴することができます.

1044 ワード

属性の巡回
ES 6は全部で5つの方法でオブジェクトの属性を遍歴することができます.
(1)for…infor...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属性である.