ネイティブ オブジェクト ( 、、など)prototype
を拡張するために使用するのは悪い考えだとどこかで読みました。これは本当ですか?なぜですか、そうでないのですか?String
Number
Array
3 に答える
AndrewDupontによるJSConf2011のこのビデオでは、これについて素晴らしい議論があります。http://blip.tv/jsconf/jsconf2011-andrew-dupont-everything-is-permitted-extending-built-ins-5211542
基本的にポイントは次のとおりです。
- 伸ばさないで
Object.prototype
- 物事を拡張したい人もいれば、そうでない人もいます
- あなたは自分が何をしているのかを知る必要があります
- 物事を拡張する2つのライブラリを使用しないでください。
- プロトタイプを拡張して標準機能を追加することは、ほとんどの場合問題ありません。
悪くないと思います。Ruby on Rails を見ると、非常に多くのネイティブ オブジェクトがカスタム機能で拡張されており、非常に優れたフレームワークです。
悪いのは、ネイティブ オブジェクトの既存のメソッドを変更した場合です。これにより、予期しない結果が生じる可能性があります。
ネイティブ オブジェクトの動作を拡張/変更することは避けたいと思います。
少なくとも、チーム環境で開発する場合は理にかなっています。
数か月後、別の独立したコードを書いている別の開発者は、どこかに文書化され、タスクを開始する前にそれを認識しない限り、変更された動作をすぐには認識しないためです。
代わりに、誰かが変更された関数を使用するかどうかを選択できるように、そのようなすべての機能をカプセル化/「名前空間」化することをお勧めします。
また、ネイティブ オブジェクトとそのメソッドは、さまざまなケースで徹底的にテストされています。したがって、ネイティブ機能を変更する前に、何をしているのかを完全に確認する必要があります。