一個函數讓你完全瞭解閉包和函數柯里化

瞭解下閉包和函數柯里化的概念閉包

閉包:就是可以讀取其餘函數內部變量的函數。

維基百科上說道:柯里化,英語:Currying(果真是滿滿的英譯中的既視感),是把接受多個參數的函數變換成接受一個單一參數(最初函數的第一個參數)的函數,而且返回接受餘下的參數並且返回結果的新函數的技術。

零 · 若是須要你寫一個判斷數據類型的方法你會怎麼作?

  • 🤔️ 使用typeof用,那你可能判斷不出對象的類型
  • 🤔️ 使用 constructor 看是誰構造的
  • 🤔️ 使用instranceof 判斷誰是誰的實例
  • 🤔️ 使用Object.prototype.toString.call

你們均可以本身嘗試下,今天咱們的重點是使用Object.prototype.toString.call
app

壹 · 數據類型判斷函數

  • 關鍵詞:兩個參數valuetype
  • 弊端:每次調用都要傳入type的值String

優化一:減小參數的傳入

調整傳參方式,新增isString這時咱們能夠觀察到函數

  • 在調用isString時咱們只需傳遞了value值,而且返回接受了餘下參數的函數的返回結果
  • isString實現了保存變量的功能(閉包)
  • isTypeOne函數裏的getType函數能夠被不在本身做用域下的地方執行從而造成閉包


isString在調用時寫錯了會形成結果判斷錯誤,優化

優化二:統一處理數據類型函數

相關文章
相關標籤/搜索