そのため、コンストラクターを作成するときに「new」を使用する JavaScript コードがたくさんあります。JavaScript の Good Parts の一部を読んだ後、「new」を使用することは猫のパジャマではないようです。4年も前の話だけど… まだオススメじゃないの?現在の基準は何ですか?
2 に答える
いつからnew
推奨されていませんか?D. Crockford は有効な主張と強い意見を持っていますnew
が、言語の一部であり、多くのプロジェクトで非常に多く使用されています。new
はプロトタイプ継承モデルの一部であり、コンストラクター関数で新しいインスタンスを作成するために使用する必要があります。this
Crockford は、コンテキストを適切に使用し、return this
子オブジェクト間でプロパティとメソッドを継承できる純粋に機能的なアプローチを指摘しています。これは一般的な問題に対する別の解決策ですが、new
使用すべきではないという意味ではありません。実際、これまでで最もコピー/ペーストされた JS スニペットの 1 つは Crockford のobject.create
ポリフィルであり、以下を使用しますnew
。
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}
Object.create
Crockford の影響を受けて ECMAScript 5 に移行したことを除けば、2008 年以降、大きな変更はありませんnew
。 Douglas Crockford が力強く指摘したのと同じ動作と欠点が依然として残っています。私自身の意見では、彼は問題をかなり誇張し、開発者を便利なオペレーターに反対させたので、問題なく使用し続けています。私は、他の開発者が (確かに立派な) Crockford をやみくもに内面化して逆流させるのではなく、自分で決断することをお勧めします。