为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

MMTTMM 2018-09-24 18:01:13
let getters = {     total: (state) => (symbol) => {         return (symbol || '$') + state.count;     } }网上看到这么一段代码,不理解 为什么箭头函数后边要跟一个箭头函数,一开始以为是一个箭头函数传两个参数的特殊写法,试了试发现getters.total(state, symbol)  // 调用不了 getters.total(state)(symbol)  //调用成功不知道这样写有什么玄机?
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

这段代码相当于:

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

至于为什么这么写,你需要了解一个概念:函数柯里化

如果你不了解函数柯里化,那你完全可以在定义的时候定义为:

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

而要完全理解函数柯里化带来的好处,你可能还要去学习函数式编程


查看完整回答
反对 回复 2018-09-24
  • 1 回答
  • 0 关注
  • 678 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信