使用数组解构,我可以为引用赋值:
const o = {}
;[o['something']] = ['a', 'b', 'c']
console.log(o) // { something: 'a' }Run Code Online (Sandbox Code Playgroud)
但是我不能对对象解构做同样的事情。为什么?
const o = {}
{ ['1']: o['something'] } = { '1': 'a' } // Syntax ErrorRun Code Online (Sandbox Code Playgroud)
你可以。问题只是这里{ }被解释为块而不是对象文字!出于同样的原因,你不能写{ a: 1 }.a.
您可以将整个语句包装在括号中以避免此问题(与({ a: 1 }).a使上一个示例工作的方式相同):
const o = {}
;({ ['1']: o['something'] } = { '1': 'a' })
console.log(o) // { something: 'a' }Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |