亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在javascript中,多個箭頭函數意味著什么?

在javascript中,多個箭頭函數意味著什么?

函數式編程 2019-06-24 10:12:02
在javascript中,多個箭頭函數意味著什么?我讀了一堆react代碼和我看到這樣的東西,我不明白:handleChange = field => e => {   e.preventDefault();   /// Do something here}
查看完整描述

3 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

理解箭頭函數的可用語法將給你一個了解什么行為,他們是介紹什么時候‘鏈子’,就像你提供的例子。

當一個箭頭函數沒有塊大括號、有多個參數或沒有多個參數時,構成函數體的表達式是隱式回來了。在您的示例中,該表達式是另一個箭頭函數。

No arrow funcs              Implicitly return `e=>{…}`    Explicitly return `e=>{…}` 

---------------------------------------------------------------------------------

function (field) {         |  field => e => {            |  field => {

  return function (e) {    |                             |    return e => {

      e.preventDefault()   |    e.preventDefault()       |      e.preventDefault()

  }                        |                             |    }

}                          |  }                          |  }

使用箭頭語法編寫匿名函數的另一個優點是,它們在詞匯上綁定到定義它們的作用域。從…MDN上的“箭函數”:

箭頭函數表達式的語法比函數表達式并在詞匯上綁定這,這個價值。箭頭函數總是匿名.

這在您的示例中特別相關,因為它是從反應Js申請。正如@naomik所指出的,在反應中,您經常訪問構件成員函數使用this..例如:

Unbound                     Explicitly bound            Implicitly bound 

------------------------------------------------------------------------------

function (field) {         |  function (field) {       |  field => e => {

  return function (e) {    |    return function (e) {  |    

      this.setState(...)   |      this.setState(...)   |    this.setState(...)

  }                        |    }.bind(this)           |    

}                          |  }.bind(this)             |  }


查看完整回答
反對 回復 2019-06-24
?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

一般提示,如果您對任何新的JS語法及其編譯方式感到困惑,您可以檢查巴貝爾..例如,在Babel中復制代碼并選擇es 2015預設將提供如下輸出

handleChange = function handleChange(field) {
 return function (e) {
 e.preventDefault();
  // Do something here
   };
 };


查看完整回答
反對 回復 2019-06-24
  • 3 回答
  • 0 關注
  • 884 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號