【发布时间】:2021-07-17 03:05:46
【问题描述】:
我有点难以理解以下 JS:
const store = new Vuex.Store({
state: {
todos: [
{ id: 1, text: '...', done: true },
{ id: 2, text: '...', done: false }
]
},
getters: {
// ...
getTodoById: (state) => (id) => {
return state.todos.find(todo => todo.id === id)
}
}
})
store.getters.getTodoById(2) // -> { id: 2, text: '...', done: false }
这两个代码sn-ps取自Vuex官方文档on Method Style Access for Getters。
现在我不明白的是,代码的第二部分如何输出注释中的值?可能是我没理解 JS 函数?
我相信输出会是:
(id) => {
return state.todos.find(todo => todo.id === id)
}
所以实际上是返回的第二个函数,因为在他们使用的调用中,我没有看到两个 '()()',我也不明白函数从哪里接收 'state' 变量。
我想请求解释一下,我是否错过了 JS 中的某些内容,或者这是 Vuex 特定的内容?
【问题讨论】:
-
这是一个 JavaScript 的东西。这个答案很好解释:stackoverflow.com/a/32787782/11375753
标签: javascript function vue.js vuex