如何比较对象

时间:2019-05-13 15:32:13

标签: javascript

请帮助我。如何比较这些对象?

const a = {myProp: 'value1'};
const b = a;
b.myProp = 'value2';

总让我成真。但是必须返回false。

1 个答案:

答案 0 :(得分:0)

如果对象是可序列化的,则可以使用以下内容:

const a ={
    myProp: value1
};
const b = JSON.parse(JSON.stringify(a));
b.myProp = value2;
console.log(a.myProp); //value1
console.log(b.myProp);//value2

在Javascript中,当您将对象分配给变量时,变量将存储对象引用。因此,在您的代码中,a和b都存储相同的对象引用。因此,当您修改b时,a也会改变。上面的代码所做的是,它将对象转换为字符串并创建一个新的字符串。请注意,这仅适用于JSON可序列化对象,如果具有功能,将不起作用。同样,此方法可能效率不高。但是不幸的是,没有内置的方法来实现这一目标。您可以使用克隆,但是深度只有1级,这称为阴影克隆。如果您不希望前一个对象的引用继续进行,则需要深度克隆。只需在Java中使用Google深度克隆,您将获得大量的库来实现它。