カリー化暗黙的にカリー化+ =が知られている顔の質問を追加呼び出します

カリー化

===================================

ウィキペディアの説明:

      カリー、英語:カリー化(英語翻訳視覚の両方で完全な確かである)、関数のパラメータを複数に単一のパラメータを受け付けるが(初期の第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:次のような結果を達成するために追加

console.log((3)(2)(1)を追加)// 6
console.logは// 10((1、2、3)(4)を追加します)
console.log((5)(4)(3)(2)(1)追加)// 15
 
A:以下のコード
 
機能の追加(){ 
  VARのARR = Array.prototype.slice.call(引数)
  のvar F =関数(){ 
    arr.push(...引数)
    戻りF 
  } 
  f.toString =関数(){ 
    戻りarr.reduce( (A、B)=> A + B)
  } 
  戻りF 
}

  

 

おすすめ

転載: www.cnblogs.com/liujinyu/p/11514756.html