6

そのため、コンストラクターを作成するときに「new」を使用する JavaScript コードがたくさんあります。JavaScript の Good Parts の一部を読んだ後、「new」を使用することは猫のパジャマではないようです。4年も前の話だけど… まだオススメじゃないの?現在の基準は何ですか?

4

2 に答える 2

7

いつからnew推奨されていませんか?D. Crockford は有効な主張と強い意見を持っていますnewが、言語の一部であり、多くのプロジェクトで非常に多く使用されています。newはプロトタイプ継承モデルの一部であり、コンストラクター関数で新しいインスタンスを作成するために使用する必要があります。thisCrockford は、コンテキストを適切に使用し、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();
    };
} 
于 2012-08-09T07:57:17.450 に答える
2

Object.createCrockford の影響を受けて ECMAScript 5 に移行したことを除けば、2008 年以降、大きな変更はありませんnew。 Douglas Crockford が力強く指摘したのと同じ動作と欠点が依然として残っています。私自身の意見では、彼は問題をかなり誇張し、開発者を便利なオペレーターに反対させたので、問題なく使用し続けています。私は、他の開発者が (確かに立派な) Crockford をやみくもに内面化して逆流させるのではなく、自分で決断することをお勧めします。

于 2012-08-09T09:21:57.693 に答える