ホームページ >ウェブフロントエンド >jsチュートリアル >Javascript_javascript スキルにおける高階関数の概要

Javascript_javascript スキルにおける高階関数の概要

WBOY
WBOYオリジナル
2016-05-16 16:09:241253ブラウズ

これは興味深いことであり、JavaScript オブジェクトの力を示す可能性もあります。やるべきことは、前の記事 で述べたように Hello, World を出力することであり、入力は print('Hello')('World') であり、これがいわゆる高水準関数です。

高階関数

ハイレベルというのは、高度なプログラミング技術を表す難解な用語のように思えますが、最初にそれを見たとき、私もそう思いました。

JavaScript の高階関数

ただし、高階関数は、関数をパラメーターまたは戻り値として受け取る単なる関数です。簡単な例として上記の Hello, World を考えてみましょう。


コードをコピー コードは次のとおりです:
var Moqi = function(p1){
This.add = 関数 (p2){
return p1 ' ' p2;
};
追加を返す;
};

この関数は次のように使用できます


コードをコピー コードは次のとおりです:
console.log(Moqi('Hello')('World'));

このプロセスは少しわかりにくいかもしれないので、詳しく見てみましょう。

コードをコピー コードは次のとおりです:
> モキの種類('こんにちは')
<- "関数"
>モキ(「こんにちは」)
<- 関数 (p2){
return p1 ' ' p2;
}

言い換えれば、Moqi('Hello') は実際には関数 Moqi('Hello')
です。
コードをコピー コードは次のとおりです:
> var m = Moqi('こんにちは') >m('世界')
>「ハロー、ワールド」


上記の状況から、高階関数を使用するとコードをより簡潔かつ効率的にすることができます。当然、次のような関数を作成することもできます。


>モキ('こんにちは')('世界')('フォダル')
>「ハロー、ワールドフォダル」


こんな機能があるのですね


var Moqi = function(p1){
戻り関数 (p2){
return 関数(p3){
return p1 ',' p2 ' ' p3;
}
};
};


高階関数の復元

それはますます複雑になっており、高階関数の抽象化を導入する必要があるというシグナルは、繰り返しまたは類似のコードが発生することです。次に、前の関数に段階的に復元します。


var Moqi = function(p1){
This.add = 関数 (p2){
return 関数(p3){
return p1 ',' p2 ' ' p3;
}
};
return this.add;
};


次に、新しい関数を作成します


コードをコピー コードは次のとおりです:

var Moqi = function(p1){
This.add = 関数 (p2){
This.add1 = function(p3){
return p1 ',' p2 ' ' p3;
};
return this.add1;
};
return this.add;
};

JavaScript で call メソッドを使用すると、次のようになります:
コードをコピー コードは次のとおりです:

var Moqi = function(p1){
var self = this;

関数 fd(p2) {
This.add1 = 関数 (p3) {
return p1 ',' p2 ' ' p3;
};
}

self.add = function (p2){
fd.call(this, p2);
return this.add1;
};
self.add を返します;
};

高階関数の例

上記の例は単なる遊びのためのもので、次の例は実際のアプリケーション用です。

コードをコピー コードは次のとおりです:

add = function(a,b){
b を返します;
};

関数 math(func,array){
戻り関数(配列[0],配列[1]);
}

console.log(math(add,[1,2]));

> math(add,[1,2])


上の例では、渡された add はパラメーターであり、返されたときは単なる関数です。たとえば、jQuery には
の関数があります。
コードをコピー コードは次のとおりです:

// CSS およびデータ モジュールで使用されるダッシュをキャメルケースに変換します
// Microsoft はベンダー プレフィックス (#9572) をハンプするのを忘れました
キャメルケース: function( string ) {
戻り値 string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
}、

このように使われることもあり、JS を使いこなすには高階関数がいかに重要であるかがわかります。 。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。