15

ネイティブ オブジェクト ( 、、など)prototypeを拡張するために使用するのは悪い考えだとどこかで読みました。これは本当ですか?なぜですか、そうでないのですか?StringNumberArray

4

3 に答える 3

5

AndrewDupontによるJSConf2011のこのビデオでは、これについて素晴らしい議論があります。http://blip.tv/jsconf/jsconf2011-andrew-dupont-everything-is-permitted-extending-built-ins-5211542

基本的にポイントは次のとおりです。

  • 伸ばさないでObject.prototype
  • 物事を拡張したい人もいれば、そうでない人もいます
  • あなたは自分が何をしているのかを知る必要があります
  • 物事を拡張する2つのライブラリを使用しないでください。
  • プロトタイプを拡張して標準機能を追加することは、ほとんどの場合問題ありません。
于 2012-04-17T19:54:06.113 に答える
5

悪くないと思います。Ruby on Rails を見ると、非常に多くのネイティブ オブジェクトがカスタム機能で拡張されており、非常に優れたフレームワークです。

悪いのは、ネイティブ オブジェクトの既存のメソッドを変更した場合です。これにより、予期しない結果が生じる可能性があります。

于 2012-04-17T18:50:38.290 に答える
1

ネイティブ オブジェクトの動作を拡張/変更することは避けたいと思います。

少なくとも、チーム環境で開発する場合は理にかなっています。

数か月後、別の独立したコードを書いている別の開発者は、どこかに文書化され、タスクを開始する前にそれを認識しない限り、変更された動作をすぐには認識しないためです。

代わりに、誰かが変更された関数を使用するかどうかを選択できるように、そのようなすべての機能をカプセル化/「名前空間」化することをお勧めします。

また、ネイティブ オブジェクトとそのメソッドは、さまざまなケースで徹底的にテストされています。したがって、ネイティブ機能を変更する前に、何をしているのかを完全に確認する必要があります。

于 2012-04-17T19:15:23.510 に答える