1. ホーム
  2. javascript

for.inとhasOwnProperty [重複]の関係

2023-10-06 17:18:33

質問

重複の可能性があります。

JavaScriptでオブジェクトが特定のプロパティを持っているかどうかを確認するにはどうすればよいですか?

TwitterのJavaScriptファイルに次のようなスニペットがありました。なぜ彼らは hasOwnProperty 関数を呼び出して dictkey プロパティを持つか?また に対して ループは 'dict' の各 'key' に対して実行されており、これは 'dict' が 'key' を持つことを意味します。私はポイントを逃しているのでしょうか?

function forEach(dict, f) {
    for (key in dict) {
        if (dict.hasOwnProperty(key))
            f(key, dict[key]);
    }
}

どのように解決するのですか?

なぜなら、そうしないと、プロトタイプ チェーン上のすべてのプロパティをループすることになり、知らないもの (ネイティブ オブジェクトのプロトタイプを誰かがいじったことによって追加された可能性があるもの) も含まれるからです。

この方法では、そのオブジェクトのインスタンス自体にあるキーだけが保証されます。