我想从另一个对象创建一个对象,但是在更改第二个对象时没有第一个对象发生更改。
我试过了:
var ojb2 = new Object(obj1); // obj1 is still bound to obj2
Var obj2 = Object.create(obj1); // does not create object at all
答案 0 :(得分:0)
Object.create实际上创建了对象,但随后将第一个对象作为新对象的原型。这样您就可以使用第一个对象中定义的属性和函数,但您也可以使用相同的名称定义属性,而不会覆盖第一个对象:
var obj1 = {a: 20};
var obj2 = Object.create(obj1);
obj2.a = 10;
// obj2 = {
// a: 10,
// __proto__: {
// a: 20
// }
//}
答案 1 :(得分:0)
我不是百分百肯定理解你的问题,但你想从另一个对象创建一个对象,对吗?当你改变第二个时它不会改变原来的那个?如果我理解你,你可以使用new Object()
。
这是一个例子,如果您使用它会发生什么:
var obj1 = {
asd : "asd",
asd2 : "asd2"
};
var obj2 = new Object(obj1);
console.log(obj1); //{ asd: 'asd', asd2: 'asd2' }
console.log(obj2); //{ asd: 'asd', asd2: 'asd2' }
obj2 = {
aasd : "aasd",
aasd2 : "aasd2"
};
console.log(obj1); //{ asd: 'asd', asd2: 'asd2' }
console.log(obj2); //{ aasd: 'aasd', aasd2: 'aasd2' }