当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript Object assign()用法及代码示例


对象.assign()方法用于将一个或多个源对象的值和属性复制到目标对象。它调用 getter 和 setter,因为它在源上使用 [[Get]],在目标上使用 [[Set]]。

用法:

Object.assign(target, ...sources);

参数:

  • target:它是值和属性必须复制到的目标对象。
  • sources:它是必须从中复制值和属性的源对象。

返回值:

对象.assign()返回目标对象。

示例1:在此示例中,对象 “obj1” 的属性即 { a: 10 } 被复制到目标对象 “new_obj”。

Javascript


// creating an object constructor 
// and assigning values to it
const obj1 = { a: 1 };
// creating a target object and copying values and 
// properties to it using object.assign() method
// Here, obj1 is the source object
const new_obj = Object.assign({}, obj1);
// Displaying the target object 
console.log(new_obj);

输出:

Object { a: 1 }

示例 2:在此示例中,三个源对象“obj1、obj2、obj3”的属性被复制到目标对象“new_obj”。先前对象中存在的任何预先存在的键值对的值将为over-written。例如,值为 10 的 obj1.b 现在将被值为 20 的 obj2.b 覆盖

Javascript


// creating 3 object constructors and assigning values to it
let obj1 = { a: 10 };
let obj2 = { b: 20 };
let obj3 = { c: 30 };
// Creating a target object and copying values 
// and properties to it using object.assign() method 
let new_obj = Object.assign({}, obj1, obj2, obj3);
// Displaying the target object
console.log(new_obj);

输出:

Object { a: 10, b: 20, c: 30 }

示例 3:在此示例中,三个源对象“obj1、obj2、obj3”的属性被复制到目标对象“new_obj”,并且目标对象获取覆盖的值。

Javascript


// Creating 3 object constructors and assigning values to it
let obj1 = { a: 10, b: 10, c: 10 };
let obj2 = { b: 20, c: 20 };
let obj3 = { c: 30 };
// Creating a target object and copying values and 
// properties to it using object.assign() method
let new_obj = Object.assign({}, obj1, obj2, obj3);
// Displaying the target object
console.log(new_obj);

输出:

Object { a: 10, b: 20, c: 30 }

解释:

在上面的代码中,属性被稍后以相同参数顺序具有相同属性的其他对象覆盖。

应用:

  • 对象.assign()用于克隆对象,合并具有相同属性的对象。

错误和异常

  • 如果该属性不可写,则会引发TypeError。
  • 仅当在引发错误之前添加属性时,才能更改目标对象。
  • 对象.assign()不会引发 null 或未定义的源值

我们有 JavaScript 对象方法的完整列表,要检查这些方法,请浏览此JavaScript 对象完整参考文章。

支持的浏览器:

  • 谷歌浏览器 6.0 及以上版本
  • Internet Explorer 9.0 及以上版本
  • Mozilla 4.0 及以上版本
  • Opera 11.1 及以上版本
  • Safari 5.0 及以上版本


相关用法


注:本文由纯净天空筛选整理自Shubrodeep Banerjee大神的英文原创作品 JavaScript Object assign() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。