mr.*_*ris 1 javascript variables object ecmascript-2016
我有一个具有一些属性的现有对象:
var props = {
filters: {
brightness: 0,
opacity: 1,
}
}
Run Code Online (Sandbox Code Playgroud)
因此,我想filter在变量声明期间将该对象的属性分配给另一个对象:
var sprite = {
configs: {
image: 'pic.png',
// <- assign `props.filters` right here
}
}
Run Code Online (Sandbox Code Playgroud)
结果我想得到这样的对象:
{
configs: {
image: 'pic.png',
brightness: 0,
opacity: 1,
}
}
Run Code Online (Sandbox Code Playgroud)
sprite我可以在变量声明后这样做:
Object.assign(sprite.configs, props.filters);
Run Code Online (Sandbox Code Playgroud)
但是是否可以在变量声明期间分配另一个对象的属性?
如果一个对象中有很多属性,JS 允许在变量声明期间实现这样的赋值,以消除多余的后处理,这将非常方便。
您可以使用展开运算符来“展开”精灵变量内的 props 值。
const props = {
filters: {
brightness: 0,
opacity: 1,
}
};
const sprite = {
configs: {
image: 'pic.png',
...props.filters,
}
};
console.log(sprite);Run Code Online (Sandbox Code Playgroud)