2012-02-15 4 views

答えて

2

は、必ず継承されたメンバーの上に反復を避けるために、このようなループ内のために書く:

for (name in obj) { 
    if (obj.hasOwnProperty(name)) { 
    //... 
    } 
} 
+0

うん、私のせいで、PHPやC#のような単純なforeachループだと思った。:-) –

0

問題が見つかりました。

は、変更された:(I点で){...}

ため

に(i = 0; I < points.length; iは++){ため.. 。}

、今は仕事を始めた..しかし、私はその理由を理解することはできません。..

+0

ダグラス・クロックフォードがwrotes: を」...オブジェクトに格納されたキーを列挙することができ文では、すべてを生成するためにオブジェクト自体のキーだけではなく、オブジェクトのプロトタイプチェーン内のキー。これにより、継承されたメソッドが列挙体に表示されますが、これは悪いことです。もしJavaScriptがこの欠陥を含んでいなければ、もっとうまくいっていたでしょうが、幸いにも私たちはそれをプログラムすることができます。 Aグレードのブラウザのすべてにおいて は、私たちは常にこの形式の書類にために書く必要があります:(OBJ内の名前)のため { 場合(obj.hasOwnProperty(名)){ ... } を}」 http://yuiblog.com/blog/2006/09/26/for-in-intrigue/ –

関連する問題