カリー化
===================================
ウィキペディアの説明:
カリー、英語:カリー化(英語翻訳視覚の両方で完全な確かである)、関数のパラメータを複数に単一のパラメータを受け付けるが(初期の第1のパラメータの関数)を受け付ける機能、戻ります新技術の機能は、残りの引数を受け取り、結果を返します。
要約:
パラメータの数を減少させる1、マルチパラメータ関数
図2に示すように、関数の戻り
レビュー:カリー化は、クロージャの種類のアプリケーションであります
長所:
1、多重パラメータ(またはパラメータの数を減らします)。
多重化パラメータを達成するためには、スコープを使用して(例えば、機能を返す)環境汚染の原因となるだけでなく、「擬似グローバル」変数の広い範囲を作成し、より環境クロージャを作成していない、トップレベルのスコープチェーンのキャッシュパラメータ、どちらも効果。
2、拡張を実行します。
jsがしばしばカリー化されて達成するためにバインド、メカニズムとして使用します。機能も返すバインド
3、複製前処理を減らすことができます。
例えば、ブラウザの互換性に対処します
=関数にVAR(要素、イベントハンドラ){ IF(document.addEventListener){ IF(要素&&イベントハンドラ&&){ element.addEventListener(イベントハンドラ、偽)。 } }他{ IF(要素&&イベントハンドラ&&){ element.attachEvent(+イベントハンドラ'に'); } } } =にVAR(関数(){ IF(document.addEventListener){ return関数(要素、イベントハンドラ){ IF(要素&&イベントハンドラ&&){ element.addEventListener(イベントハンドラはfalse); } } ; }他{ 復帰機能(要素、イベントハンドラ){ IF(要素&&イベントハンドラ&&){ element.attachEvent(+イベントハンドラ'に'); } }。 } })();
短所:
図1は、サイズの使用を見て危険にさらす、メモリリークになり
暗黙の呼び出し
===================================
:それは意味のデータ型変換toStingとのvalueOfを、書き換えtoStingとのvalueOfを、オブジェクトの呼び出しがとき再び暗黙的に呼び出さ、JSパーサの原理である、そこにはされているtoSting際に主に使用さtoSting、無toStingが使用する代わりのvalueOfを
クラシック顔の質問には、オーバーレイの合計を追加します
===================================
Q:次のような結果を達成するために追加
機能の追加(){ VARのARR = Array.prototype.slice.call(引数) のvar F =関数(){ arr.push(...引数) 戻りF } f.toString =関数(){ 戻りarr.reduce( (A、B)=> A + B) } 戻りF }