es6 双箭头函数调用有什么意义?

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

网上看到这么一段代码,不理解 为什么箭头函数后边要跟一个箭头函数,一开始以为是一个箭头函数传两个参数的特殊写法,试了试发现

getters.total(state, symbol)  // 调用不了
getters.total(state)(symbol)  //调用成功

不知道这样写有什么玄机?


MMTTMM
浏览 679回答 1
1回答

慕的地8271018

这段代码相当于:let getters = {    total: function(state) {         return function(symbol) => {            return (symbol || '$') + state.count;         }     } }至于为什么这么写,你需要了解一个概念:函数柯里化如果你不了解函数柯里化,那你完全可以在定义的时候定义为:let getters = {     total: (state, symbol) => {         return (symbol || '$') + state.count;     } }而要完全理解函数柯里化带来的好处,你可能还要去学习函数式编程
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript