什么函数返回另一个参数也声明为常量的函数呢?
What function returning another function with parameters declared also as constants exactly do?
我完全迷路了。以下是 article 考虑重新选择库的简短代码:
const shopItemsSelector = state => state.shop.items
const taxPercentSelector = state => state.shop.taxPercent
const subtotalSelector = state => {
const items = shopItems(state)
return items => items.reduce((acc, item) => acc + item.value, 0)
}
const taxSelector = state => {
const subtotal = subtotalSelector(state)
const taxPercent = taxPercentSelector(state)
return (subtotal, taxPercent) => subtotal * (taxPercent / 100)
}
export const totalSelector = state => {
const subtotal = subtotalSelector(state)
const tax = taxSelector(state)
return (subtotal, tax) => ({ total: subtotal + tax })
}
谁能解释一下 totalSelector returns 是什么函数?
我看到了 returns 另一个参数为 subtotal 和 tax 的函数,但为什么有同名常量声明的以及它们如何对应返回函数的参数?
Can someone explain what function totalSelector
returns?
几乎可以肯定这不是作者要 return 表达的意思。 :-)
它是什么 returns 是一个函数,当用两个参数调用时,returns 是一个带有 total
属性 的对象,它是两个参数的总和传入的参数。totalSelector
before return
行中的所有内容完全没有意义并被忽略,因为作者已经 shadowed箭头函数中带有参数的 subtotal
和 tax
常量是 returning:
export const totalSelector = state => {
const subtotal = subtotalSelector(state) // <=== These
const tax = taxSelector(state) // <=== constants
// vvvvvvvvvvvvv------------ are shadowed by these parameter declarations
return (subtotal, tax) => ({ total: subtotal + tax })
// ^^^^^^^^^^^^^^ -- so this uses the parameters
}
所以箭头函数体中的subtotal
和tax
是参数,不是常量。
作者大概是这个意思:
export const totalSelector = state => {
const subtotal = subtotalSelector(state)
const tax = taxSelector(state)
return () => ({ total: subtotal() + tax() })
// ^^ ^^ ^^
}
...虽然很难确定。它接受一个状态对象和 returns 一个函数,当被调用时,将 select 小计和征税 从那个调用开始 和 return 总计.请注意,它不接受任何参数,并且 调用 它通过 subtotalSelector(state)
和 taxSelector(state)
创建的函数。
subtotalSelector
和taxSelector
有同样的问题。
totalSelector()
returns 需要两个参数的函数 subtotal
和 tax
.
这个returned function
returns一个object with the property total
是通过subtotal + tax
计算出来的
声明的常量与返回的函数无关。
我完全迷路了。以下是 article 考虑重新选择库的简短代码:
const shopItemsSelector = state => state.shop.items
const taxPercentSelector = state => state.shop.taxPercent
const subtotalSelector = state => {
const items = shopItems(state)
return items => items.reduce((acc, item) => acc + item.value, 0)
}
const taxSelector = state => {
const subtotal = subtotalSelector(state)
const taxPercent = taxPercentSelector(state)
return (subtotal, taxPercent) => subtotal * (taxPercent / 100)
}
export const totalSelector = state => {
const subtotal = subtotalSelector(state)
const tax = taxSelector(state)
return (subtotal, tax) => ({ total: subtotal + tax })
}
谁能解释一下 totalSelector returns 是什么函数?
我看到了 returns 另一个参数为 subtotal 和 tax 的函数,但为什么有同名常量声明的以及它们如何对应返回函数的参数?
Can someone explain what function
totalSelector
returns?
几乎可以肯定这不是作者要 return 表达的意思。 :-)
它是什么 returns 是一个函数,当用两个参数调用时,returns 是一个带有 total
属性 的对象,它是两个参数的总和传入的参数。totalSelector
before return
行中的所有内容完全没有意义并被忽略,因为作者已经 shadowed箭头函数中带有参数的 subtotal
和 tax
常量是 returning:
export const totalSelector = state => {
const subtotal = subtotalSelector(state) // <=== These
const tax = taxSelector(state) // <=== constants
// vvvvvvvvvvvvv------------ are shadowed by these parameter declarations
return (subtotal, tax) => ({ total: subtotal + tax })
// ^^^^^^^^^^^^^^ -- so this uses the parameters
}
所以箭头函数体中的subtotal
和tax
是参数,不是常量。
作者大概是这个意思:
export const totalSelector = state => {
const subtotal = subtotalSelector(state)
const tax = taxSelector(state)
return () => ({ total: subtotal() + tax() })
// ^^ ^^ ^^
}
...虽然很难确定。它接受一个状态对象和 returns 一个函数,当被调用时,将 select 小计和征税 从那个调用开始 和 return 总计.请注意,它不接受任何参数,并且 调用 它通过 subtotalSelector(state)
和 taxSelector(state)
创建的函数。
subtotalSelector
和taxSelector
有同样的问题。
totalSelector()
returns 需要两个参数的函数 subtotal
和 tax
.
这个returned function
returns一个object with the property total
是通过subtotal + tax
声明的常量与返回的函数无关。