A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 庭院深深深几许 金牌黑马   /  2019-4-18 13:09  /  1126 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
  JavaScript Demo: Object.assgin()
[Java] 纯文本查看 复制代码
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

  语法
[Java] 纯文本查看 复制代码
Object.assign(target, ...sources);

  参数:
  target: 目标对象
  sources: 源对象
  返回值:
  *目标对象
  描述
  如果目标对象中的属性具有相同的键,则属性将被源中的属性覆盖。后来的源的属性将类似地覆盖早先的属性。
  Object.assign 方法只会拷贝源对象自身的并且可枚举的属性到目标对象。该方法使用源对象的[[Get]]和目标对象的[[Set]],所以它会调用相关 getter 和 setter。因此,它分配属性,而不仅仅是复制或定义新的属性。如果合并源包含getter,这可能使其不适合将新属性合并到原型中。为了将属性定义(包括其可枚举性)复制到原型,应使用Object.getOwnPropertyDescriptor()和Object.defineProperty() 。
  String类型和Symbol类型的属性都会被拷贝。
  在出现错误的情况下,例如,如果属性不可写,会引发TypeError,如果在引发错误之前添加了任何属性,则可以更改target对象。
  注意,Object.assign 不会跳过那些值为 [null] 或 [undefined]的源对象。
 

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马