Object.assign方法的用法是什么?

分类:知识百科 日期: 点击:0

Object.assign方法的用法

Object.assign方法是ES6新增的一个api,它的作用是用来将源对象(source)的所有可枚举属性,复制到目标对象(target)。Object.assign方法实际上是浅拷贝,它只拷贝源对象的自身属性(不拷贝继承属性),而且只拷贝可枚举的属性(不拷贝不可枚举的属性)。

Object.assign方法的语法如下:

Object.assign(target, ...sources)

其中,target是目标对象,sources是源对象。Object.assign方法会遍历sources中的所有可枚举属性,将它们复制到target中。如果目标对象中的属性具有相同的键,则后面的属性会覆盖前面的属性。

Object.assign方法的一个典型应用是为对象添加属性,如:

const obj = {};
Object.assign(obj, {a: 1, b: 2});
// obj有两个属性a和b

Object.assign方法还可以用来合并多个对象,如:

const obj1 = {a: 1, b: 2};
const obj2 = {c: 3, d: 4};
const obj3 = {e: 5, f: 6};

const obj = Object.assign(obj1, obj2, obj3);
// obj有六个属性a、b、c、d、e、f

Object.assign方法还可以用来克隆一个对象,如:

const obj1 = {a: 1, b: 2};
const obj2 = Object.assign({}, obj1);
// obj2是obj1的一个克隆

Object.assign方法还可以用来将原型属性拷贝到另一个对象,如:

const obj1 = {a: 1, b: 2};
const obj2 = Object.assign({}, Object.getPrototypeOf(obj1));
// obj2是obj1的原型对象

Object.assign方法还可以用来为函数的参数设置默认值,如:

function foo(opts = {}) {
  const options = Object.assign({}, {a: 1, b: 2}, opts);
  // options有三个属性a、b、opts
}

Object.assign方法还可以用来将数组转换为对象,如:

const arr = [["a", 1], ["b", 2]];
const obj = Object.assign({}, arr);
// obj有两个属性a和b

Object.assign方法还可以用来将类数组对象转换为真正的数组,如:

const arrLike = {0: "a", 1: "b", length: 2};
const arr = Array.from(Object.assign([], arrLike));
// arr是一个包含两个元素的数组

Object.assign方法的用法很多,它可以用来实现很多有用的功能,它是一个非常有用的api。

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。