在构造函数中复制对象(而不是对象引用),可以使用以下方法:
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();
Object.assign()
函数将源对象的属性复制到目标对象中,以创建一个新的对象。function Person(name, age) {
Object.assign(this, { name, age });
}
var person1 = new Person('John', 25);
var person2 = Object.assign({}, person1);
JSON.parse()
将其转换回对象。这将创建一个新的对象,而不是引用原始对象。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中的其他数据类型,也可以使用类似的方法进行复制。
领取专属 10元无门槛券
手把手带您无忧上云