JavaScript APIの設計方法を探すとき、私はメソッドチェーンを発見しました。これは非常に強力で興味深いようです。これは、過去によく見られるものでもあります。 。
JavaScriptメソッドチェーン
ウィキペディアには説明があります:
コードコピーは次のとおりです。
指名されたパラメーターIdiomとも呼ばれるメソッドチェーンは、オブジェクト指向のプログラミング言語で複数のメソッド呼び出しを呼び出すための一般的な構文です。各メソッドはオブジェクトを返し、単一のステートメントで呼び出しを一緒に連鎖させることができます。チェーンは、中間変数の必要性を排除する構文糖です。メソッドチェーンは、メソッド間にラインブレークがしばしば追加されているにもかかわらず、より多くの方法がチェーンされたときに発生する同じラインで次々と来る方法の数が増加するため、列車の難破船としても知られています。
翻訳ツールを使用して翻訳しました。
コードコピーは次のとおりです。
指名されたパラメーターメソッドとも呼ばれるメソッドチェーンは、オブジェクト指向のプログラミング言語で複数のメソッドを呼び出すための一般的な構文です。各メソッドは、1つの宣言で電話を一緒に接続できるオブジェクトを返します。リンクは構文砂糖であり、中間変数の必要性を排除します。メソッドチェーンは、メソッドが次々と発生し、通常、メソッド間に新しいラインが追加されていても、メソッドが次々に発生し、複数のメソッドがロックされるため、列車の破壊とも呼ばれます。
メソッドチェーンの使用
最もメソッドチェーンを使用するものはjQueryでなければならないと推定されています。
コードコピーは次のとおりです。
//チェーン
$( "#person")。slidedown( 'slow')
.addclass( 'グループ化')
.css( 'margin-left'、 '11px');
この使用法を使用してこれを呼び出すことができます。 jQueryはリンクに大きく依存しています。これにより、いくつかの方法を同じ選択と呼ぶことができます。これにより、コードがより明確になり、同じ選択が数回実行されるのを防ぎます(パフォーマンスの向上)。メソッドチェーンがない場合、次のように見えます
コードコピーは次のとおりです。
var p = $( '#person');
P.Slidedown( 'slow');
p.addclass( 'グループ化');
p.css( 'margin-left'、'11px ');
デザインパターンのビルダーに非常によく似ています。違いは、ここがクラスではなく方法であることです。
JavaScriptメソッドチェーンの例
JavaScriptの高次関数について以前に話したとき、私たちは印刷( 'hello')( 'world')について話しましたが、この使用の結果は次のようになるかもしれません。
コードコピーは次のとおりです。
関数f(i){
return function(e){
i+= e;
return function(e){
i+= e;
return function(e){
アラート(i+e);
};
};
};
};
f(1)(2)(3)(4); // 10
これはオンラインの例ですが、前回チェーンコールを書いた方法でもありました。弱いように見えます。
コードコピーは次のとおりです。
var func =(function(){
戻る{
追加:function(){
console.log( '1');
戻る{
結果:function(){
console.log( '2');
}
}
}
}
})();
func.add()。result();
実際、各関数にこれを返す必要があるので、次のようになります。
コードコピーは次のとおりです。
func =(function(){
this.add = function(){
console.log( '1');
これを返します。
};
this.result = function(){
console.log( '2');
これを返します。
};
これを返します。
});
var func = new func();
func.add()。result();
もちろん、最後の2つの文章を置くこともできます
コードコピーは次のとおりです。
var func = new func();
func.add()。result();
なる
コードコピーは次のとおりです。
new func()。add()。result();
他の
最後に、混乱する場所の小さな比較として:
メソッドチェーンとプロトタイプチェーン
プロトタイプチェーンとメソッドチェーンはいくつかの面で似ていますが、違いはそれがあるかもしれません
1。プロトタイプチェーンにはプロトタイプが必要です
2。メソッドチェーンはメソッドです