4
myObj.hasOwnProperty(prop)の代わりにObject.prototype.hasOwnProperty.call(myObj、prop)を使用する理由
私が正しく理解している場合、JavaScriptのすべてのオブジェクトはObjectプロトタイプを継承します。つまり、JavaScriptのすべてのオブジェクトは、プロトタイプチェーンを通じてhasOwnProperty関数にアクセスできます。 require.jsのソースコードを読んでいるときに、私はこの関数を偶然見つけました。 function hasProp(obj, prop) { return hasOwn.call(obj, prop); } hasOwnへの参照Object.prototype.hasOwnPropertyです。この関数を次のように書くことに実際的な違いはありますか function hasProp(obj, prop) { return obj.hasOwnProperty(prop); } そして、私たちがそうしているので、なぜこの関数をまったく定義しないのですか?(わずかな)パフォーマンス向上のためのプロパティアクセスのショートカットとローカルキャッシングの問題ですか、またはこのメソッドを持たないオブジェクトでhasOwnPropertyが使用される可能性があるケースがないのですか?