js常用方法收集

2019-07-12  本文已影响0人  Claude_z
  1. Object.assign(target, ...sources);
/**
 * target 目标对象
 * sources 源对象
 * 返回目标对象
 */
Object.assign(target, ...sources);

example

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

描述

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

参考:https://www.jianshu.com/p/e22113e3f614

上一篇 下一篇

猜你喜欢

热点阅读