在JavaScript中,可以用三種方法來遍歷對象的property:
1.for/in??梢允褂胒or/in語句遍歷對象自身的property(Own Property)及其從原型對象處繼承的property,只有enumerable的property才會被遍歷到。
2.Object.keys()??梢詫ο笞鳛閰祩魅隣bject.keys(),Object.keys()語句將返回由所有property名稱字符串所組成的數組。Object.keys()語句僅返回對象自身的(Own Property)且enumerable的property。該語句僅在ECMAScript 5標準中有效。
3.Object.getOwnPropertyNames()??梢詫ο笞鳛閰祩魅隣bject.getOwnPropertyNames(),與Object.keys()一樣,該語句將返回由所有property名稱字符串所組成的數組。與Object.keys()不同的是,Object.getOwnPropertyNames()語句將返回所有對象自身的property(Own Property),而不論其是否為enumerable。該語句僅在ECMAScript 5標準中有效。
綜合上述信息,總結成圖如下:
實驗:
for(p in a){
console.log(p);
}//z x y
console.log(Object.keys(a));//["z"]
console.log(Object.getOwnPropertyNames(a));//["z"]
新聞熱點
疑難解答