js对象属性的返回值如何分配给参考地址?

时间:2019-05-31 03:41:54

标签: javascript assignment-operator

var o1 = {};
var o2 = { bar: 'hello' };

o1.foo = o2; // in console  {bar: "hello"}
var o3 = o2;// in console  undefined

为什么要打印{bar: "hello"}? 为什么undefined被打印?

1 个答案:

答案 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仅仅是代码的返回值。