ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript プロトタイプベースのコードを編成するときに「this」の値を維持するにはどうすればよいですか?
オブジェクト指向 JavaScript のコード構成と「this」値
JavaScript プロトタイプベースのコードを構成する場合、共通の課題が発生します。オブジェクト参照と継承を保持します。 next()、prev()、bindControls() などのさまざまな関数を備えた Carousel クラスがあるとします。コードの構成を強化するには、
Carousel.prototype.controls = { next: function () { ... } , prev: function() { ... }, bindControls: function () { .. } };
のようにこれらの関数をコントロール プロパティの下にグループ化したいと考えます。ただし、このアプローチでは、オブジェクトのプロパティやメソッドにアクセスするために重要な「this」値が中断されます。元のコンテキストで "this" 値を維持するには、次の解決策を採用できます。
Controls コンストラクター内で制御可能なオブジェクトへの参照を保持する Controls クラスを作成します。 next() などのアクションを処理するコントロールのメソッドは、参照を使用して制御可能なオブジェクト内の適切なメソッドを呼び出します。
var Controls = function (controllable_object) { this.ref = controllable_object; }; Controls.prototype.next = function () { this.ref.foo(); } // .. var Carousel = function () { this.controls = new Controls(this); }; // ..
これにより継承が確保され、コントロールの実装をオーバーライドできるようになります。依存性注入のようなメカニズム。
以上がJavaScript プロトタイプベースのコードを編成するときに「this」の値を維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。