ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript でのプロトタイピングとクロージャ: カスタム オブジェクトの作成にはどちらの方法を使用する必要がありますか?
JavaScript のカスタム オブジェクトを理解する
JavaScript でカスタム オブジェクトを作成するには、プロトタイピング方法とクロージャ方法という 2 つの主な方法のどちらかを選択する必要があります。
プロトタイピング方法
プロトタイピング方法では、プロトタイプ オブジェクトに基づいてオブジェクトが作成されます。コンストラクター関数が定義され、そのプロトタイプ プロパティにメソッドとプロパティが追加されます。継承は、subclassOf() ヘルパー関数を使用して実現されます。
クロージャの方法
クロージャの方法では、各オブジェクトは、独自のコピーを持つスタンドアロンのエンティティになります。メソッドとプロパティ。継承の代わりに、メソッドのコピーがクロージャとして渡されます。デフォルトでは、これは現在のオブジェクトを指し、イベント処理に役立ちます。
どの方法を使用するか
最適なアプローチは、特定のニーズによって異なります。
カスタム オブジェクトのサンプル コード
プロトタイピング方法の使用:
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); this.r = r; } Circle.subclass(Shape); Circle.prototype.toString = function() { return 'Circle at ' + this.x + ', ' + this.y + ', with radius ' + this.r; };
クロージャ方法の使用:
function Shape(x, y) { var that = this; that.x = x; that.y = y; that.toString = function() { return 'Shape at ' + that.x + ', ' + that.y; }; } function Circle(x, y, r) { Shape.call(this, x, y); this.r = r; var _baseToString = this.toString; this.toString = function() { return 'Circle at ' + _baseToString.call(that) + ', with radius ' + this.r; }; }
以上がJavaScript でのプロトタイピングとクロージャ: カスタム オブジェクトの作成にはどちらの方法を使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。