我总是有这样一种直觉,代码中的表达式可以在心理上被它的计算结果替换.但是,以下两个代码片段具有不同的执行结果.
let obj = {};
({a: obj.b, b: obj.a} = {a: 1, b: 2}); //* This line
console.log(obj); // {b: 1, a: 2}
与
let obj = {a: 1, b: 2};
({a: obj.b, b: obj.a} = obj); //* and this line
console.log(obj); // {a: 1, b: 1}
我认为这两条带星号的线在我的大脑中是一样的,但它们有不同的执行结果.
这是故意设计的吗?