2012-01-27 4 views

答えて

10

すべてのオブジェクトプロパティを反復処理するときにオブジェクトにアクセスできるようにするには、そのオブジェクトのプロパティを列挙できます。例:

インスタンス化のこのタイプの
var obj = {prop1: 'val1', prop2:'val2'}; 
for (var prop in obj){ 
    console.log(prop, obj[prop]); 
} 

、可算は常に真である、これはあなたの出力与える:

:あなたがそうのようObject.createを()を使用していた場合は

prop1 val1 
prop2 val2 

obj = Object.create({}, { prop1: { value: 'val1', enumerable: true}, prop2: { value: 'val2', enumerable: false} }); 

あなたのforループはprop1にのみアクセスし、prop2にはアクセスしません。 Object.create()を使用すると、プロパティはデフォルトでenumerable = falseで設定されます。

+0

'enumerable'のデフォルトは' Object.create' – Raynos

+0

ありがとう、私は他のインスタンス化を指していました。私はそれに言及するのを忘れた。私は私の答えを編集します –

+0

ありがとう - それは私のためにそれをクリア=] – ryanve

関連する問題