JS对象,需要解释发生了什么以及为什么

时间:2014-11-04 02:35:42

标签: javascript json object

这是Pet的代码:

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);
});

这是我从控制台获得的:

console results

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

1 个答案:

答案 0 :(得分:1)

可能因为console.log可以在事后更新基础对象引用时更新已打印的数据。尝试创建另一个名为pet2的引用来查看技巧。

顺便说一下,您应该检查thisthis