Javascript JS对象,需要解释什么';发生了什么,为什么

Javascript JS对象,需要解释什么';发生了什么,为什么,javascript,json,object,Javascript,Json,Object,这是宠物的代码: function Pet() { this.vitals = new Vitals(); } function Vitals() { this.hunger = 5; this.thirst = 0; this.emotions = { happy: true, sad: true } } 以下是电话号码等: $(document).ready(function () { var pet = n

这是宠物的代码:

function Pet() {
    this.vitals = new Vitals();
}

function Vitals() {
    this.hunger = 5;
    this.thirst = 0;
    this.emotions = {
        happy: true,
        sad: true
    }
}
以下是电话号码等:

$(document).ready(function () {
    var pet = new Pet();
    console.log(pet);
    pet.vitals.emotions.happy = false;
    console.log(pet);
});
这是我从控制台得到的信息:


问题:为什么两个读数中的
happy
false
,而不仅仅是第二个读数?

可能是因为
console.log
可以更新已打印的数据,如果之后更新了基础对象引用。尝试创建另一个名为
pet2
的引用以查看技巧


顺便说一句,你应该检查一下,而且很有趣。

。有人建议在该链接中使用字符串化,这似乎可以捕获执行状态,而不是当前状态,因此该链接非常有用。:)的确,这个主题很有趣:)看