ES6 对象解构赋值问题

最近在学ES6的东西 没明白解构赋值到底该什么用 怎么用的问题 像我这样写的 解构赋值完成以后怎么使用这个对象呢 这个对象也没有个名字
图片描述
我还不能这么写 会报错
console.log(let {account, password} = params)

不知道怎么使用这个对象 也不太明白这跟Object.assign有什么区别

阅读 2.7k
2 个回答

看了两遍,理解了题主的意思。
首先,并不是包含在 {} 中的就是对象。你要知道什么才是对象,对象的声明和构造方式。

let obj = new Object()

//or 
let obj = Object.create(null)

//or 
let obj = {}

上面的这种才是。而 {} 中的内容,一般称之为语句块(statement block)

解构赋值的左边,不是声明一个对象,而是变量的集合。就是说,我声明了 accountpassword 两个变量。

let account = params.account
let password = params.password

Object.assign() 是对象用来做 mixin 操作的一个方法,两者没有关系。上面的是对象解构操作,Object.assign() 是对象的一个方法。

let {account, password} = params
等价于

let account = params.account
let password = params.password

解构赋值的前提是目标对象里有对应的属性,没有或写错了是拿不到值的

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