如何在另一个对象中复制 JavaScript 对象属性?


在 JavaScript 中,对象是键值对的集合。对象的属性是键,并用字符串表示。键的值是给定对象属性的值。

在 JavaScript 中,对象可以通过多种方式复制到其他对象,其中一些方式包括:

使用扩展运算符 (...)

JavaScript 中的扩展运算符用于将原始给定对象的值复制到新对象。此运算符由三个点 (...) 表示。

示例 1

此示例演示了如何在 JavaScript 中使用扩展运算符复制对象:

var employee = { emp_name: "Abdul Rawoof", company: "Tutorials Point", salary: 18000, job: "Software Engineer-Intern" } console.log("The original object employee is:", employee) var cpyEmployee = {...employee} console.log("The copied object cpyEmployee is:",cpyEmployee);

如果对象具有嵌套对象,则使用扩展运算符时应编写一些附加行。

使用 assign() 函数

此函数用于将原始对象复制到新对象。这与扩展运算符的区别在于,当存在嵌套对象时,如果使用 assign() 复制对象,则嵌套对象不会更改,而对象的其它变量可以更改。

assign() 函数有两个参数。第一个参数是花括号 {},用于确保新对象不会更改原始对象。第二个参数是要复制到新对象的原始对象的名称。

语法

Object.assign({},originalObjectName)

示例 1

以下是 assign() 方法的示例。在这里,我们正在创建一个对象并将其内容复制到新对象:

var employee = { emp_name: "Abdul Rawoof", company: "Tutorials Point", salary: 18000, job: "Software Engineer-Intern" } console.log("The original object employee is:", employee) var cpyEmployee = Object.assign({},employee) console.log("The copied object cpyEmployee is:",cpyEmployee); cpyEmployee.emp_name="Jason" cpyEmployee.job="Content writer-Intern" console.log("The copied object with some different name and role is:",cpyEmployee)

在上面的示例中,原始对象被复制到新对象,然后更改对象的属性。因此,由此可以得出结论,我们可以更新对象属性的值,然后再从原始对象复制。

当使用 assign() 函数复制这些对象时,原始值和新复制的值将具有相同的引用。因此,一个值的更改会相应地改变另一个值。

示例 2

以下是assign() 方法的另一个示例。要将源对象的所有属性复制到目标对象,可以使用以下代码:

const targetObj = { a: 1, b: 2 }; const sourceObj = { b: 4, c: 5 }; const returnedTarget = Object.assign(targetObj, sourceObj); console.log(targetObj); console.log(returnedTarget); console.log(returnedTarget === targetObj); console.log(sourceObj);

更新于:2022年9月2日

2K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.