コンストラクタを作るときに "new"を使うJavaScriptコードがたくさんあります。 JavaScriptの一部を読んだ後、「新しい」を使うことは猫のパジャマではないようです。それは4年前でした...それはまだ推奨されていませんか?現在の標準とは何ですか?"new"はまだJavaScriptではお勧めできませんか?
答えて
new
はいつですか? D. Crockfordは有効な点と強い意見を持っていますが、new
は言語の一部であり、多くのプロジェクトで非常によく使われています。 new
は、プロトタイプ継承モデルの一部であり、コンストラクタ関数を使用して新しいインスタンスを作成するために使用する必要があります。 Crockfordは、のコンテキストを適切に使用し、return this
を使用して、子オブジェクト間のプロパティとメソッドを継承できるように、純粋に機能的なアプローチを指摘しています。一般的な問題とは異なる解決策ですが、new
を使用すべきではありません。実際には、すべての時間のほとんどのコピー/貼り付けJSスニペットの1はクロックフォードさん、object.create
ポリフィルであり、それはnew
を使用しています。多くの
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}
何も離れてクロックフォードの影響を受けたObject.create
からその道を作って、2008年から変わっていませんECMAScript 5:new
には、Douglas Crockfordが強制的に指摘したのと同じ動作と欠点があります。私の意見では、彼はむしろ問題を誇張し、開発者を有用なオペレーターに変えてしまったので、問題なく使用し続けます。私は他の開発者が盲目的に内部化して逆流する(確かに賞賛に値する)Crockfordではなく、自分たちの心を作り上げることを勧めます。
私は同意します。彼はおそらく、私たちは欠点があるという知識でそれを使うべきだと言っていたはずですが、それは有用です。 – Chris
- 1. はSICPはまだお勧めですか?
- 2. Facebookに登録できませんお勧めのボタン
- 3. ジェネリック例外をスローすることはお勧めできませんか?
- 4. Django - なぜauth.Userをサブクラス化するのはお勧めできませんか?
- 5. ボタンをお勧めします..もしお勧めですか?
- 6. asp.netメンバシップマネージャコントロールをお勧めできます
- 7. デタッチビューコントローラーでビューコントローラーを表示することは、iOS 9ではお勧めできませんか?
- 8. なぜ私は "カピバラを含む:グローバルスコープ内のDSLはお勧めしません!"
- 9. 誰もVINデコードサービスをお勧めできますか?
- 10. 誰もSilverlight 2の本をお勧めできますか?
- 11. 勧告を評価する - xのケースではお勧めできない
- 12. VB.NetとC#を同じソリューションで混在させるのはなぜお勧めしませんか?
- 13. Windows Vistaでは32ビットまたは64ビットをお勧めしますか?
- 14. UrlRewriter.Net、ASP.NET MVCルーティング、または何をお勧めしますか?
- 15. "placement new"と "operator new"はまだ必要ですか?
- 16. 角度2 + typscriptまたは角度2 + JavaScript 1つをお勧めします
- 17. このようなインポートは有効ですか、お勧めしていませんか?
- 18. pyparsingはテーブル駆動ですか?そうでない場合は、パーサをお勧めできますか?
- 19. Androidオートコンプリートはインターネットからお勧めします
- 20. はユニークなjquery画像ストリーマをお勧めしますか?
- 21. WindowsにはどのHTTPトラフィックモニタをお勧めしますか?
- 22. JavaScript window.getSelection()は把握できません
- 23. 辞書アプリケーションまたはファイル形式をお勧めします
- 24. Mockitoでテストするときは、Interfaceの代わりにImplementationを使用することをお勧めしますか?インターフェイスでは動作しません
- 25. 誰でもUMLツールのバリデーションをお勧めしますか?
- 26. お勧めします.Net Job/Task Queue
- 27. デザインパターンをお勧めします
- 28. カタログベースのWebサイトでSQL Server CEを使用することはお勧めしません
- 29. Google App Engineではなくweb2pyフレームワークの使用をお勧めしますか?
- 30. どのような学習習慣をお勧めできますか?
これは本当です!彼の著書では、「このスタイルのコンストラクタ関数の使用はお勧めできません」(新しいスタイルを使用するスタイル)と述べています。それから彼は他の解決策を説明する。だからこそ私はこの質問を提起した。 – Parris
場合によっては混乱を招く可能性があるので推奨しませんが、コンストラクタ関数を大文字にするなどの混乱を避けるための一般的な方法があります。クロフトフォードが '++'と '--'を使うことを勧めていないことについても同じことを言えるかもしれません... – elclanrs
どちらも私は使いやすいと思っています。 – Chris