首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在构造函数中复制对象(而不是对象引用)

在构造函数中复制对象(而不是对象引用),可以使用以下方法:

  1. 手动复制:通过遍历源对象的属性,并将每个属性的值复制到新对象中来手动复制对象。这可以确保新对象是源对象的副本,而不是引用。
代码语言:txt
复制
function Person(name, age) {
  this.name = name;
  this.age = age;
}

Person.prototype.clone = function() {
  return new Person(this.name, this.age);
};

var person1 = new Person('John', 25);
var person2 = person1.clone();
  1. Object.assign():使用Object.assign()函数将源对象的属性复制到目标对象中,以创建一个新的对象。
代码语言:txt
复制
function Person(name, age) {
  Object.assign(this, { name, age });
}

var person1 = new Person('John', 25);
var person2 = Object.assign({}, person1);
  1. JSON.parse()和JSON.stringify():将源对象转换为JSON字符串,然后使用JSON.parse()将其转换回对象。这将创建一个新的对象,而不是引用原始对象。
代码语言:txt
复制
function Person(name, age) {
  var jsonString = JSON.stringify({ name, age });
  var jsonObject = JSON.parse(jsonString);
  Object.assign(this, jsonObject);
}

var person1 = new Person('John', 25);
var person2 = JSON.parse(JSON.stringify(person1));

这些方法可以在构造函数中复制对象而不是对象引用。它们可以确保新对象具有与源对象相同的属性和值,而不共享相同的引用。对于JavaScript中的其他数据类型,也可以使用类似的方法进行复制。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券