カスタム オブジェクトの作成
主に 2 つの方法がありますJavaScript でカスタム オブジェクトを作成する: プロトタイピングの方法とクロージャway.
プロトタイピング方法
このメソッドでは、オブジェクトのプロパティとメソッドがそのプロトタイプで定義されます。次の例では、Shape オブジェクトと、その Shape をサブクラス化する Circle オブジェクトを作成します。
function Shape(x, y) { this.x = x; this.y = y; } Shape.prototype.toString = function() { return 'Shape at ' + this.x + ', ' + this.y; }; function Circle(x, y, r) { Shape.call(this, x, y); // Invoke base class constructor this.r = r; } Circle.prototype = new Shape(); // Create prototype inheritance link Circle.prototype.toString = function() { return 'Circular ' + Shape.prototype.toString.call(this) + ' with radius ' + this.r; };
Closure Way
このメソッドは継承を使用しません。代わりに、各インスタンスにはプロパティとメソッドの独自のコピーがあります。
function Shape(x, y) { var that = this; this.x = x; this.y = y; this.toString = function() { return 'Shape at ' + that.x + ', ' + that.y; }; } function Circle(x, y, r) { var that = this; Shape.call(this, x, y); // Invoke base class constructor this.r = r; var _baseToString = this.toString; this.toString = function() { return 'Circular ' + _baseToString.call(that) + ' with radius ' + that.r; }; };
長所と短所
プロトタイピング方法
クロージャ方法
適切な方法の選択
選択はプロジェクトの特定の要件によって異なります。複数のレベルの継承を持つ大きなオブジェクト階層の場合は、プロトタイピングが優先される場合があります。単純で独立したオブジェクトの場合、多くの場合、クロージャの方法の方が便利です。
以上がJavaScript でカスタム オブジェクトを作成するプロトタイピングとクロージャの方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。