如何理解ES6的对象解构赋值?

ES6代码

const a = {
    action:({commit}) => {
        commit('action')
    }
}

问题:这里的{commit}如何理解呢?

阅读 2.5k
3 个回答
let obj = {name:"123"}

let {name} = obj;
//let name = obj.name;

babel
变量的解构赋值

ps: 你这里应该用的是vuex,vuex在内部处理了commit方法 其实这里面函数解构有个this的坑

var name = 'window'
let obj = {
  name:"obj",
  func:function(){
    console.log(this.name)
  }
}

obj.func()//window

let {func} = obj;

func()//window

这样比较容易理解:

action: function({commit}) {
    commit('action');
}

let obj = {
    commit: function(msg) {
        console.log(msg);
    }
}
action(obj);

“ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。”
你指的 commit 就是这个被提取的东西。

but,你这里的东西跟结构赋值没关系啊,你这里的 commit 是一个箭头函数内的传参对象啊。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题