为什么在Javascript中将其分解为新变量时却const {source:target} = obj
,而不是相反?
我问是因为const {target:soruce} = obj
会更符合......
const source = 'x';
const obj = {target:source};
...而且我会犯的错误更少。 :)
答案 0 :(得分:1)
如果将其格式设置为:
({ source: target } =
{ source: "value" });
尤其是对于嵌套属性:
({ source1: { source2: target }} =
{ source1: { source2: "value" }});
答案 1 :(得分:1)
您的问题很有趣。因此,我想对此发表看法:
const {源:目标} =对象
1)双方应相等:
{ source } = object
2)因此,它们都是对象:
{ source } = object || { source: 'the value - not an alias' }
3)如果对象未定义怎么办?
const { source } // and source will hold the value
4)提取了键,而不是值
const { source as target } = object
// like we have
// export { source as target } from 'module'
5)如果使用as怎么办?
const obj = { source: { target: 'another value' } }
const { source: { target: asValue } } = obj
嵌套对象键非常困难:
const { source of target as asValue } // makes life no easier.
您能考虑我们是否使用它吗?
import { a, b, c } from 'module'
但是使用导入/导出语法只有一个注意事项。
import { a, b, c } from 'module', 'another-module', 'third-module'
但不是:
.call()
希望,现在这很有意义!
如果实际上您在使用解构语法感到困惑,那么您可能会看到并遵循我的another post中提供的链接。