ES6引入的destructuring assignment句法支持從對象拆包值:同時使用解構賦值分配到新的可變
let { r = 0, g = 0, b = 0 } = { r: 255, g: 55 };
let color = { r, g, b };
console.log(color, r, g, b); // prints "{r: 255, g: 55, b: 0} 255 55 0"
然而,下面的代碼段將不具有相同的效果:
let color = { r = 0, g = 0, b = 0 } = { r: 255, g: 55 }
console.log(color); // prints "{r: 255, g: 55}"
如果您顛倒了訂單,也是如此:
let { r = 0, g = 0, b = 0 } = color = { r: 255, g: 55 }
console.log(color); // prints "{r: 255, g: 55}"
是有一個單行的解決方案分配r
,g
,b
,以及color
?
沒有,創建一個新的對象總是需要的對象文字。另請參閱[單線程從ES6中的對象獲取一些屬性](https://stackoverflow.com/q/25553910/1048572)。你的雙線版本就好了。 – Bergi