在下面的代码中,objA.foo值是如何设置为'bar‘的?(非Javascript开发人员)。JS中的哪个概念或功能将objA属性的值设置为“bar”?
var objA = Object.create({
foo: 'foo'
});
var objB = objA;
objB.foo = 'bar';
console.log(objA.foo);
console.log(objB.foo);
发布于 2018-08-21 06:04:48
var objB = objA
不会创建对象的副本。它包含对objA
的引用。通过引用修改对象会更改保存该对象引用的两个变量的引用。
要克隆对象,可以使用JSON.parse(JSON.stringify(obj))
。
var objA = Object.create({
foo: 'foo'
});
var objB = JSON.parse(JSON.stringify(objA));
objB.foo = 'bar';
console.log(objA.foo);
console.log(objB.foo);
您也可以使用Object.assign({}, obj)
。
var objA = Object.create({
foo: 'foo'
});
var objB = Object.assign({}, objA);
objB.foo = 'bar';
console.log(objA.foo);
console.log(objB.foo);
请参阅documentation。
https://stackoverflow.com/questions/51939048
复制相似问题