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; } }
而要完全理解函数柯里化带来的好处,你可能还要去学习函数式编程
添加回答
举报
0/150
提交
取消