js拷贝对象的属性是什么

在JavaScript中,拷贝对象的属性是一种常见的操作,这通常涉及到将一个对象的属性复制到另一个对象中,以便在不修改原始对象的情况下使用或修改这些属性,本文将详细讲解如何使用不同的方法来拷贝JavaScript对象的属性。

js拷贝对象的属性是什么
(图片来源网络,侵删)

1、使用Object.assign()方法

Object.assign()方法用于将一个或多个源对象的可枚举属性复制到目标对象,它将返回目标对象。

const obj1 = { a: 1, b: 2 };
const obj2 = { c: 3 };
Object.assign(obj2, obj1);
console.log(obj2); // 输出:{ c: 3, a: 1, b: 2 }

2、使用扩展运算符(spread operator)

扩展运算符...)可以将一个对象的所有可枚举属性复制到一个新对象中。

const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1 };
console.log(obj2); // 输出:{ a: 1, b: 2 }

3、使用for...in循环

for...in循环可以遍历一个对象的所有可枚举属性,我们可以使用这个循环来逐个复制属性。

const obj1 = { a: 1, b: 2 };
const obj2 = {};
for (const key in obj1) {
  if (obj1.hasOwnProperty(key)) {
    obj2[key] = obj1[key];
  }
}
console.log(obj2); // 输出:{ a: 1, b: 2 }

4、使用Object.keys()reduce()方法

Object.keys()方法返回一个包含对象所有可枚举属性的数组,我们可以使用reduce()方法来将这些属性复制到一个新对象中。

const obj1 = { a: 1, b: 2 };
const obj2 = Object.keys(obj1).reduce((acc, key) => {
  acc[key] = obj1[key];
  return acc;
}, {});
console.log(obj2); // 输出:{ a: 1, b: 2 }

5、使用Object.getOwnPropertyNames()reduce()方法

Object.getOwnPropertyNames()方法返回一个包含对象所有自有属性(包括不可枚举属性)的数组,我们可以使用reduce()方法来将这些属性复制到一个新对象中。

const obj1 = { a: 1, b: 2, c: 3 };
Object.defineProperty(obj1, 'd', { value: 4, enumerable: false });
const obj2 = Object.getOwnPropertyNames(obj1).reduce((acc, key) => {
  acc[key] = obj1[key];
  return acc;
}, {});
console.log(obj2); // 输出:{ a: 1, b: 2, c: 3, d: 4 }

6、使用JSON.parse()JSON.stringify()方法

这种方法首先将对象转换为JSON字符串,然后将该字符串解析为新对象,这种方法只能复制对象的可枚举属性,且不能复制函数和原型链。

const obj1 = { a: 1, b: 2 };
const obj2 = JSON.parse(JSON.stringify(obj1));
console.log(obj2); // 输出:{ a: 1, b: 2 }

JavaScript中有多种方法可以拷贝对象的属性,选择哪种方法取决于你的需求和场景,如果你只需要复制可枚举属性,可以使用Object.assign()方法、扩展运算符或JSON.parse()JSON.stringify()方法,如果你需要复制所有自有属性,可以使用for...in循环、Object.keys()reduce()方法或Object.getOwnPropertyNames()reduce()方法。

原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/308593.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
酷盾叔订阅
上一篇 2024-03-04 20:16
下一篇 2024-03-04 20:18

相关推荐

  • js拷贝数组怎么操作出来

    在JavaScript中,拷贝数组有多种方法,每种方法都有其适用的场景,以下是一些常用的拷贝数组的方法:1、使用slice()方法slice()方法返回一个新的数组对象,包含从开始到结束(不包括结束)选择的数组的一部分深拷贝的数组,原数组不会被改变,语法如下:let newArray = oldArray.slice(beginInd……

    2024-03-04
    093

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入