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

Par*_*ram 0 javascript

谁能解释一下为什么foo.bar未定义?根据我的理解,它应该打印3.请纠正我,如果我错了.

这是代码.

    var bar = 1,
    foo = {};

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

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

    bar; //2
Run Code Online (Sandbox Code Playgroud)

提前致谢;

Ale*_*har 9

你还错字是foo = {没有foo: {.属性也必须用逗号分隔,而不是分号:

var bar = 1,
    foo = {};

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

console.log(foo.bar); //2
console.log(foo.baz); //2
console.log(bar); //2
Run Code Online (Sandbox Code Playgroud)

另请查看对象初始化程序