関数チェーンは、開発者が特定の順序で実行される一連の操作を作成できるようにするプログラミング手法です。 JavaScript では、これは関数自体を返すことと this キーワードを使用することを組み合わせることによって実現されます。
連鎖の原理を理解するために、実際の例を見てみましょう:
var one = function(num) {
this.oldnum = num;
this.add = function() {
this.oldnum ;
return this;
}
if (this instanceof one) {
return this.one;
} else {
return new one(num);
}
}
var test = one(1).add().add();
この例では、one 関数は数値で構築されています。 oldnum プロパティをインクリメントしてこれを返す add 関数を定義します。 if ステートメントは、関数がコンストラクター (new を使用) として呼び出されているかどうかを確認し、そうでない場合は 1 の新しいインスタンスを返します。
式 one(1).add().add() は、初期値 1 を持つ新しい 1 つのオブジェクト。次に、このオブジェクトに対して add 関数が 2 回呼び出され、そのたびに oldnum プロパティがインクリメントされます。最後に、変数 test は結果を保持します。これは、oldnum が 3 に設定された 1 つのオブジェクトです。
対照的に、次の例は正しくチェーンされません:
var gmap = function() {
this.add = function() {
alert('add');
return this;
}
if (this instanceof gmap) {
return this.gmap;
} else {
return new gmap();
}
}
var test = gmap.add();
ここで、gmap 関数はメソッド内でこれを返さないため、チェーンが壊れています。式 gmap.add() は、gmap コンストラクター関数自体で add メソッドを呼び出そうとしますが、意図したとおりに動作しません。
連鎖を成功させる鍵は、this キーワードを使用することです。これは、現在のオブジェクト。これをメソッドから返すことにより、呼び出し元はオブジェクトに再度アクセスし、一連の操作を続行できます。
チェインは、JavaScript で簡潔で表現力豊かなコードを記述するための強力なテクニックです。上記の原則を理解することで、開発者はチェーンを効果的に活用してアプリケーションの機能を強化できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3