javascript箭头函数()

时间:2018-06-13 03:37:14

标签: javascript reactjs ecmascript-6 redux

我知道如果在函数体中找不到return关键字,箭头函数将返回给我。但我看到了这个

export default handleActions({
  [SET_LOADING]: (state, { payload }) => ({
    ...state, loading: payload
  })
})

这里的({})是什么? {}是一个对象,如何查看有效负载或状态中的内容?我这样做了

export default handleActions({
  [SET_LOADING]: (state, { payload }) => {
     console.log(state) //not called
    return {...state, loading: payload}
  })
}

两者都相同吗?

2 个答案:

答案 0 :(得分:0)

function f({ name }){
	console.log(name);
}

let human = {name: 'a', age: 27}
f(human)

如上所述的简单演示。我们将为函数f定义一个参数,它接受一个具有name属性的参数object。但对于这种方法,我们只关心名字而不是年龄。因此,我们可以使用对象解构来专注于一个特定的属性

以下是没有解构的方式,为了您的理解

function f(humanParam){
    	console.log(humanParam.name);
    }

    let human = {name: 'a', age: 27}
    f(human)

答案 1 :(得分:0)

如果要使用箭头函数返回对象文字,则必须将正文包裹在()

const first = (x, y) => x * y // Standard stuff
const second = (x, y) => {foo: x, bar: y} // Wrong!
const second = (x, y) => ({foo: x, bar: y}) // Correct, returning an object literal

请参阅Advanced syntax文档部分。