在Javascript中重新声明对象时会发生什么?

在Javascript中重新声明对象时会发生什么?,javascript,Javascript,谁能解释一下为什么foo.bar没有定义? 据我了解,它应该已经印了3张了。如果我错了,请纠正我 这是代码 var bar = 1, foo = {}; foo: { bar: 2; baz: ++bar; }; foo.bar; //undefined foo.baz; //undefined bar; //2 提前感谢 您的输入错误为foo={而不是foo:{。此外,属性必须用逗号分隔,而不是分号

谁能解释一下为什么foo.bar没有定义? 据我了解,它应该已经印了3张了。如果我错了,请纠正我

这是代码

    var bar = 1,
    foo = {};

    foo: {
        bar: 2;
        baz: ++bar;
    };

    foo.bar; //undefined
    foo.baz; //undefined

    bar; //2
提前感谢

您的输入错误为foo={而不是foo:{。此外,属性必须用逗号分隔,而不是分号:

var bar=1, foo={}; foo={ 酒吧:2, baz:++bar }; console.logfoo.bar;//2 console.logfoo.baz;//2
console.logbar;//2因为语法错误。重新初始化javascript变量时应为=赋值运算符:

你不是在重新声明foo,而是在使用一个

你应该

foo = {
    bar: 2,
    baz: ++bar
};

而不是foo:{}类型foo={}为什么++bar没有增加到3??因为1+1=2。变量bar与foo.barb无关,因为您已经初始化了var bar=1,所以++bar为1+1=2。而bar和foo.bar不同。bar是一个全局变量,is值为1。另一个条是obejct foo的属性。您将全局变量bar增加了1。Oops..明白了。谢谢大家
foo = {
    bar: 2,
    baz: ++bar
};