let getters = {
total: (state) => (symbol) => {
return (symbol || '$') + state.count;
}
}
网上看到这么一段代码,不理解 为什么箭头函数后边要跟一个箭头函数,一开始以为是一个箭头函数传两个参数的特殊写法,试了试发现
getters.total(state, symbol) // 调用不了
getters.total(state)(symbol) //调用成功
不知道这样写有什么玄机?
这段代码相当于:
至于为什么这么写,你需要了解一个概念:函数柯里化
如果你不了解函数柯里化,那你完全可以在定义的时候定义为:
而要完全理解函数柯里化带来的好处,你可能还要去学习函数式编程