Javascript 三重函数语法 =>
Javascript function syntax with tripple =>
下面是我在一个关于 redux 的博客中看到的代码片段。
这段代码解释了 redux-thunk。但我试图从奇怪的语法中理解
return ({dispatch, getState}) => next => action =>{}
我尝试使用此语法进行 google 搜索,但没有得到太多帮助。我不明白 next
和 action
对象是如何获得它们的值的。有人可以帮我了解这里发生了什么吗?
以这种方式链接函数通常是为了使用户能够以受控方式将参数绑定到最终函数,而不必一次性提供所有参数。
实际上,它是一项功能的 API 设计选择。
({dispatch, getState}) => next => action => {}
...等同于:
function({dispatch, getState}) { // destructure two properties into arguments
return function(next) {
return function(action) {
// this function has access to `dispatch`, `getState`, `next` & `action`
}
}
}
请注意,内部函数的参数 "binding" 是通过称为闭包的 JavaScript 功能发生的。 JavaScript .
中闭包的完整解释
下面是我在一个关于 redux 的博客中看到的代码片段。
这段代码解释了 redux-thunk。但我试图从奇怪的语法中理解
return ({dispatch, getState}) => next => action =>{}
我尝试使用此语法进行 google 搜索,但没有得到太多帮助。我不明白 next
和 action
对象是如何获得它们的值的。有人可以帮我了解这里发生了什么吗?
以这种方式链接函数通常是为了使用户能够以受控方式将参数绑定到最终函数,而不必一次性提供所有参数。
实际上,它是一项功能的 API 设计选择。
({dispatch, getState}) => next => action => {}
...等同于:
function({dispatch, getState}) { // destructure two properties into arguments
return function(next) {
return function(action) {
// this function has access to `dispatch`, `getState`, `next` & `action`
}
}
}
请注意,内部函数的参数 "binding" 是通过称为闭包的 JavaScript 功能发生的。 JavaScript