为什么我不能dinner
以这种方式将对象的属性分配给对象的属性obj
?
let dinner = {
drink: 'cola',
food: 'cake'
};
let obj = {};
{obj.one, obj.two} = dinner;
为什么我不能dinner
以这种方式将对象的属性分配给对象的属性obj
?
let dinner = {
drink: 'cola',
food: 'cake'
};
let obj = {};
{obj.one, obj.two} = dinner;
在这种情况下有几个问题:
模板中没有到源的属性映射。
{obj.one, obj.two}
此模板未指定如何将数据映射到变量。要解决它,指定特定字段就足够了:{ drink: obj.one, food: obj.two }
大括号使用的歧义,在这种情况下,它们不被视为对象字面量,或用于匹配的模式,而是被视为代码块。为了更正它,将整个表达式放在括号中就足够了。
({...} = source)
如果你修复了这些缺点,代码就会开始工作:
为避免歧义,您可以使用数组解构