【发布时间】:2014-02-24 05:00:15
【问题描述】:
var foo = {};
foo.c = foo = {};
console.log(foo.c);
为什么结果是未定义的? 我认为它应该是'[object Object]'
【问题讨论】:
-
对象通过引用传递。因此
foo.c == foo == {}。空对象没有属性c。 -
@elclanrs 你的意思是
=而不是==? -
我的意思是它们是同一个对象,它是一个循环引用。
-
必须是
var foo = {}; foo.c = foo; console.log(foo.c);// 这样可以吗?由于您正在清空 foo -
是的,或者
var foo = {}; foo.c = foo = {c: foo};
标签: javascript