これは興味深いものであり、JavaScriptオブジェクトの力を示している可能性があります。私たちがしなければならないことは、前の記事で述べたようにHello、Worldを出力することであり、入力は印刷(「hello ')(' world ')であり、これはいわゆる高次関数です。
高度な機能
高度な注文は、高度なプログラミング技術の難解な用語のように見えます。
JavaScriptの高次関数
ただし、高次関数は、関数を引数または返品値として使用する関数にすぎません。こんにちはと世界は簡単な例として上記です。
コードコピーは次のとおりです。
var moqi = function(p1){
this.add = function(p2){
P1 + '' + P2を返します。
};
addを返します。
};
このようにこの機能を使用できます
コードコピーは次のとおりです。
console.log(moqi( 'hello')( 'world'));
たぶん、このプロセスは少し混乱しているかもしれません。それがより詳細であるかどうかを見てみましょう。
コードコピーは次のとおりです。
> typeof moqi( 'hello')
< - 「関数」
> moqi( 'hello')
<-function(p2){
P1 + '' + P2を返します。
}
つまり、実際、moqi( 'hello')は機能です、moqi( 'hello')
コードコピーは次のとおりです。
> var m = moqi( 'hello')
> m( 'world')
>「こんにちは、世界」
上記の状況から判断すると、高次関数はコードをより簡潔で効率的にすることができます。当然のことながら、促進する関数を作成することもできます。
コードコピーは次のとおりです。
> moqi( 'hello')( 'world')( 'phodal')
>「こんにちは、ワールドフォーダル」
そのような機能があります
コードコピーは次のとおりです。
var moqi = function(p1){
return function(p2){
return function(p3){
p1 + '、' + p2 + '' + p3を返します。
}
};
};
高次関数を復元します
高次関数の抽象化を導入する必要がある信号は、複製または同様のコードです。次に、以前の関数に段階的に復元します。
コードコピーは次のとおりです。
var moqi = function(p1){
this.add = function(p2){
return function(p3){
p1 + '、' + p2 + '' + p3を返します。
}
};
this.addを返します。
};
次に、新しい関数を作成します
コードコピーは次のとおりです。
var moqi = function(p1){
this.add = function(p2){
this.add1 = function(p3){
p1 + '、' + p2 + '' + p3を返します。
};
this.add1を返します。
};
this.addを返します。
};
JavaScriptでコールメソッドを使用すると、次のようになります。
コードコピーは次のとおりです。
var moqi = function(p1){
var self = this;
関数fd(p2){
this.add1 = function(p3){
p1 + '、' + p2 + '' + p3を返します。
};
}
self.add = function(p2){
fd.call(this、p2);
this.add1を返します。
};
self.addを返します。
};
高度な関数の例
上記の例は楽しみのためだけで、次の例は実際のアプリケーションです。
コードコピーは次のとおりです。
add = function(a、b){
a + bを返します。
};
function math(func、array){
return func(array [0]、array [1]);
}
console.log(math(add、[1,2]));
>数学(追加、[1,2])
<3
上記の例で渡された追加はパラメーターであり、返品は単なる関数です。たとえば、jqueryには関数があります
コードコピーは次のとおりです。
//ダッシュしたダッシュをキャメルケースに変換します。 CSSおよびデータモジュールで使用されます
//マイクロソフトはベンダーのプレフィックスをこぶするのを忘れました(#9572)
camelcase:function(string){
return string.replace(rmsprefix、 "ms-").replace(rdashalpha、fcamelcase);
}、
これは、JSをマスターするために高次関数を使用する場合にも当てはまります。 。