js assign

assign( )方法,用于将所有可枚举的属性的值从一个或多个源对象复制到目标对象,它将返回目标对象。在考虑对象复制时,用assign( )方法,将源对象属性拷贝到目标对象, 创建一个新的对象,在空对象上做操作,可以避免直接赋值后,对象之间的相互影响。

js assign

语法:

Object.assign(target, ...sources)

参数:

target: 目标对象

sources: 源对象

示例:

const object1 = {  a: 1,  b: 2,  c: 3};const object2 = Object.assign({c: 4, d: 5}, object1);console.log(object2.c, object2.d);// expected output: 3 5

如果目标对象中的属性具有相同的键,则属性将被源中的属性覆盖。后来的源的属性将类似地覆盖早先的属性。Object.assign 方法只会拷贝源对象自身的并且可枚举的属性到目标对象。该方法使用源对象的[[Get]]和目标对象的[[Set]],所以它会调用相关 getter 和 setter。因此,它分配属性,而不仅仅是复制或定义新的属性。如果合并源包含getter,这可能使其不适合将新属性合并到原型中。为了将属性定义(包括其可枚举性)复制到原型,应使用Object.getOwnPropertyDescriptor()和Object.defineProperty() 。

js assign 第2张