在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ es6 雙箭頭函數(shù)調(diào)用有什么意義?

es6 雙箭頭函數(shù)調(diào)用有什么意義?

let getters = {
    total: (state) => (symbol) => {
        return (symbol || '$') + state.count;
    }
}

網(wǎng)上看到這么一段代碼,不理解 為什么箭頭函數(shù)后邊要跟一個箭頭函數(shù),一開始以為是一個箭頭函數(shù)傳兩個參數(shù)的特殊寫法,試了試發(fā)現(xiàn)

getters.total(state, symbol)  // 調(diào)用不了
getters.total(state)(symbol)  //調(diào)用成功

不知道這樣寫有什么玄機?

回答
編輯回答
卟乖

let after1 ={
getter:function (state) {

  return function (symbol) {
      return (symbol || "$") + state.count;
  }

}
};

2018年7月5日 23:24
編輯回答
離觴

雙箭頭函數(shù)本身沒有context. this指向定義時所處的context.

2017年9月17日 09:44
編輯回答
枕邊人

這段代碼相當于:

let getters = {
    total: function(state) {
         return function(symbol) => {
            return (symbol || '$') + state.count;
        }
    }
}

至于為什么這么寫,你需要了解一個概念:函數(shù)柯里化

如果你不了解函數(shù)柯里化,那你完全可以在定義的時候定義為:

let getters = {
    total: (state, symbol) => {
        return (symbol || '$') + state.count;
    }
}

而要完全理解函數(shù)柯里化帶來的好處,你可能還要去學習函數(shù)式編程

2018年9月7日 03:39
編輯回答
愚念
let getters = {
    total: (state) => (symbol) => {
        return (symbol || '$') + state.count;
    }
}

其實就是

let getters = {
    total: (state) => {
        return (symbol) => {
                    return (symbol || '$') + state.count;
                }
    }
}

第一個參數(shù)是state的函數(shù)調(diào)用后會返回一個函數(shù)(就是參數(shù)是symbol的這個函數(shù)),所以你連續(xù)調(diào)用可以成功
箭頭函數(shù)在不寫{} 的情況下,可以省略return關(guān)鍵字,而默認return接下來的東西

2017年1月28日 11:55