Object.getOwnPropertyNames()

概要

与えられたオブジェクトで発見されたすべてのプロパティ (列挙可能・不可能を問わず) の配列を返します。

構文

Object.getOwnPropertyNames(obj)

引数

obj
自身の列挙可能および列挙不可能なプロパティが返されるオブジェクトです。

説明

Object.getOwnPropertyNames は、obj で発見された列挙可能および列挙不可能なプロパティに対応する文字列を要素とする配列を返します。列挙可能なプロパティの配列内での順序は、オブジェクトで for...in ループ (または Object.keys) を実行して判明するものの順序と同じです。列挙不可能なプロパティの配列内での順序および列挙可能なプロパティとの並び方は定義されていません。

var arr = ["a", "b", "c"];
print(Object.getOwnPropertyNames(arr).sort()); // "0,1,2,length" と印刷

// array-like object
var obj = { 0: "a", 1: "b", 2: "c"};
print(Object.getOwnPropertyNames(obj).sort()); // "0,1,2" と印刷

// 列挙不可能なプロパティ
var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; }, enumerable: false } });
my_obj.foo = 1;

print(Object.getOwnPropertyNames(my_obj).sort()); // "foo, getFoo" と印刷

列挙可能なプロパティのみ取得したい場合は Object.keys をご覧いただくか、for...in ループ (当該オブジェクトで直接見つからないがプロトタイプチェインにより見つかる列挙可能なプロパティも返される点に注意が必要ですが) を用いてください。

ブラウザの互換性

Kangax's compat table に基づきます。

機能 Firefox (Gecko) Chrome Internet Explorer Opera Safari
基本サポート 4 (2.0) 5 9 未サポート 5
機能 Firefox Mobile (Gecko) Android IE Mobile Opera Mobile Safari Mobile
基本サポート ? ? ? ? ?

参考情報

ドキュメントのタグと貢献者

Contributors to this page: fright801, teoli, ethertank, yyss
最終更新者: fright801,