プロトタイプとコンストラクター定義メソッドの利点
JavaScript でメソッドを定義する場合、開発者はメソッドをプロトタイプ メソッドとして実装するか宣言するかを選択できます。コンストラクター内で直接それらを実行します。どちらのアプローチにもそれぞれ利点があります。
プロトタイプ定義メソッド
例:
function Class() {} Class.prototype.calc = function (a, b) { return a + b; } // Two instances share the same calc() method var ins1 = new Class(), ins2 = new Class(); console.log(ins1.calc(1,1), ins2.calc(1,1)); // Outputs 2, 2 // Updating the prototype method affects both instances Class.prototype.calc = function() { return Array.prototype.slice.apply(arguments).reduce((a, b) => a + b); } console.log(ins1.calc(1,1,1), ins2.calc(1,1,1)); // Outputs 3, 3
ただし、プロトタイプ メソッドは、内部で定義されたプライベート変数にアクセスできません。 constructor.
コンストラクター定義メソッド
「クラス」の関数宣言と変数宣言
関数リテラルを使用するかの選択について (例: var Class = function () {} ) または関数宣言 (例: function Class () {})。後者は、関数名の「ホイスティング」が可能になるため推奨されます。スコープの先頭に設定し、関数が定義される前に関数を呼び出すことによって発生する潜在的なエラーを回避します。
以上がプロトタイプとコンストラクター定義メソッド: JavaScript にはどちらが最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。