1

次のステートメントでObject#hasOwnProperty()は、 を使用して、現在のプロパティがオブジェクトのインスタンスのプロパティであり、プロトタイプ チェーンからのものではないかどうかを確認します。これは、この条件を気にしないことを意味します。forループは、プロトタイプ チェーンに含まれるプロパティのリスト全体を通過します。

for (key in obj) 
  if (obj.hasOwnProperty(key)) {
    iterator.call(context, obj[key], key);
  }
}

この動作を取り除き、オブジェクトのインスタンスのプロパティのリストのみを調べる方法があるかどうか知りたいですか?


タグで述べたように、私は主にパフォーマンスに関する質問をしています。1 つの回答が使用を提案しているため、この精度を上げていますObject#getOwnPropertyNames()が、私が見たすべてのベンチマークは、for…inwith とhasOwnPropertyvsgetOwnPropertyNamesがかなり不利であることを証明しているようですgetOwnPropertyNames。例: jsperf.com/for-in-vs-object-getownpropertynamesまたはjsperf.com/for-in-vs-gettownpropertynames-and-foreach/5

4

1 に答える 1