ES 7 语法, 本质是 Object.defineProperty(obj, prop, descriptor) 的语法糖
不通过子类或添加额外属性的方式就可以给对象增加新功能的手段
作用在类上
作用在类的方法上
不能作用在函数上,因为存在函数提升
Object.assign 函数
将来自一个或多个源对象中的值复制到一个目标对象。
此函数返回目标对象。仅可枚举自有属性从源对象复制到目标对象。可使用此函数合并或克隆对象。
null 或 undefined 源被视为空对象一样对待,不会对目标对象产生任何影响。
Object.assign(target, …sources );
target
必需。可枚举属性复制到的对象。
...sources
必需。从其中复制可枚举属性的对象。
使用 Object.assign 合并对象。
var first = { name: "Bob" };
var last = { lastName: "Smith" };
var person = Object.assign(first, last);
console.log(person);
// Output:
// { name: "Bob", lastName: "Smith" }
使用 Object.assign 克隆对象。
var obj = { person: "Bob Smith"};
var clone = Object.assign({}, obj);