保存された参照と継承による JavaScript プロトタイプの編成
JavaScript プロトタイプと継承を使用するときにコードを効果的に編成するには、損失に関する一般的な問題が発生します。カスタマイズされたプロトタイプの「this」値の。この問題の目的は、参照と継承を維持しながら、機能をネストされたオブジェクトに分割することでコードを整理することです。
提案された解決策:
この問題を解決する 1 つのアプローチは次のとおりです。プロトタイプ自体内に直接ネストするのではなく、問題の機能専用のクラスを作成します。
var Controls = function (controllable_object) { this.ref = controllable_object; }; Controls.prototype.next = function () { this.ref.foo(); } // .. var Carousel = function () { this.controls = new Controls(this); }; // ..
定義することでコントロールを別のクラスとして使用すると、「this」参照はカスタマイズされたプロトタイプ内でもそのまま残ります。ただし、このソリューションには、コントロールの実装をオーバーライドできないという制限があります。
依存関係挿入ソリューション:
コントロールの実装のオーバーライドを有効にするには、依存関係注入アプローチを使用できます。
var Controls = function (controllable_object) { this.ref = controllable_object; }; Controls.prototype.next = function () { this.ref.foo(); } // .. var Carousel = function () { this.controllers = []; }; Carousel.prototype.addController = function (controller) { this.controllers.push(controller); }; // .. var carousel = new Carousel(); carousel.addController(new Controls(carousel));
このソリューションは、動的追加とコントローラーの変更により、継承されたクラスの機能の選択的なオーバーライドが可能になります。
以上が「この」参照と継承を保持しながら JavaScript プロトタイプを整理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。