功能是否低于“thunk”?
(对我来说这是一个关闭,我从一篇关于反应https://spin.atomicobject.com/2016/10/05/form-validation-react/的博客文章中得到了这个)
作者解释说:“接下来,让我们看一下ruleRunner函数.regileRunner是一个thunk,或者是一个返回函数的函数.”
export const ruleRunner = (field,name,...validations) => { return (state) => { for (let v of validations) { let errorMessageFunc = v(state[field],state); if (errorMessageFunc) { return {[field]: errorMessageFunc(name)}; } } return null; }; };
相反,我认为thunk是“一个包含所有上下文(状态,函数等)的函数,以便在将来执行某种逻辑.”来自:http://www.austinstory.com/what-is-a-thunk-in-javascript/
const add = (x,y) => x + y; const thunk = () => add(1,2); thunk() // 3
所以对我来说,第一篇文章的作者是错误的,他给出了一个封闭的描述和例子,而不是一个thunk.但我可能错了,这就是我问这个问题的原因.
第一篇文章的作者是错误的是什么是thunk并且说thunk是一种特定的闭包是“正确的”,它包含了为了执行某种类型而需要的所有上下文(状态,函数等)未来的逻辑.“
解决方法
“ruleRunner is a thunk,or a function that returns a function.”
不,那是垃圾.返回函数的函数称为higher-order function.返回的函数通常为closure.
I thought a thunk was “a function that contains all of the context (state,functions,etc) it will need in order to carry out some sort of logic in the future.”
是的,这听起来很合理.这类似于一个闭包,但是一个闭包通常需要一些进一步的参数,而thunk则不需要 – 它只需要开始执行.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。