2

空のオブジェクトで呼び出された hasOwnProperty が何をするのか、誰か説明できますか? なぜそれを使用するのですか?

__hasProp = {}.hasOwnProperty

これは、coffescript で開発を始めたときに見つけました。Ty

4

1 に答える 1

9

hasOwnPropertyは呼び出されません。関数名の後に括弧はありません。

__hasProp[MDN]への参照であるためObject.prototype.hasOwnProperty

__hasProp = {}.hasOwnProperty

の短縮版です

__hasProp = Object.prototype.hasOwnProperty

__hasPropたとえば、今すぐ呼び出す

__hasProp.call(someObject, 'foo')

よりもはるかに短くて読みやすい

Object.prototype.hasOwnProperty.call(someObject, 'foo')

coffescriptの開発を始めたときに創業しました。

したがって、この行は自動的に生成されたものだと思います。実際にコードを記述する必要がないのに、なぜショートカットを作成するのか疑問に思われるかもしれません。

この関数を変数に割り当てると、ルックアップする必要がなくなり、Object使用するたびに使用できます。は 3 回ではなく 1 回のルックアップであり、非常に頻繁に使用するとパフォーマンスがわずかに向上する可能性があります。Object.prototypeObject.prototype.hasOwnProperty__hasProp

于 2013-02-22T21:23:08.210 に答える