为什么我可以使用数组破坏性赋值给一个引用,而不是对象破坏性赋值?[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我可以使用数组破坏性赋值给一个引用,而不是对象破坏性赋值?[重复]相关的知识,希望对你有一定的参考价值。
使用数组反构,我可以给一个引用赋值。
const o = {}
;[o['something']] = ['a', 'b', 'c']
console.log(o) // { something: 'a' }
但我不能用对象反构造来做同样的事. 为什么?
const o = {}
{ ['1']: o['something'] } = { '1': 'a' } // Syntax Error
答案
你可以。问题是 { }
解释为 阻止 而不是一个对象的字面意思! 出于同样的原因,你不能写 { a: 1 }.a
.
你可以用 parens 包裹整个语句,以避免这个问题(方法与 ({ a: 1 }).a
使得前面的例子可以使用)。)
const o = {}
;({ ['1']: o['something'] } = { '1': 'a' })
console.log(o) // { something: 'a' }
另一答案
变量的值可以通过使用括号与声明分开的方式进行反结构分配 ( ... )
围绕着任务声明,像。
const o = {};
({ ['1']: o['something'] } = { '1': 'a' });
console.log( o )
以上是关于为什么我可以使用数组破坏性赋值给一个引用,而不是对象破坏性赋值?[重复]的主要内容,如果未能解决你的问题,请参考以下文章