var o1 = {};
var o2 = { bar: 'hello' };
o1.foo = o2; // in console {bar: "hello"}
var o3 = o2;// in console undefined
为什么要打印{bar: "hello"}
?
为什么undefined
被打印?
答案 0 :(得分:0)
这没有发生-代码创建了名为o1
的{{1}}的新属性,并为其指定了对象的foo
的值-因此属性{{ 1}}是由o2
组成的对象。
o1.foo
您在复制/粘贴代码时在控制台中看到o2
的原因是因为代码的最终返回值为var o1 = {};
var o2 = {
bar: 'hello'
};
o1.foo = o2;
console.log(o1);
(来自{ bar: "hello" }
)。 { bar: "hello" }
仍然是包含o1.foo = o2
的对象,但是控制台中显示的o1
仅仅是代码的返回值。