Javascript中的循环引用示例?

我想知道是否有任何人有一个好的,工作示例的JavaScript中的循环引用?我知道这是关闭的难以置信的容易,但很难把我的大脑围绕这一点。一个例子,我可以解剖在Firebug将最感激。

谢谢

创建循环引用的一种简单方法是在属性中引用自身的对象:

function Foo() {
  this.abc = "Hello";
  this.circular = this;
}

var foo = new Foo();
alert(foo.circular.circular.circular.circular.circular.abc);

这里foo对象包含对自身的引用。

对于闭包,这通常更隐含,只是在范围内具有循环引用,而不是作为某个对象的显式属性:

var circular;

circular = function(arg) {
  if (arg) {
    alert(arg);
  }
  else {
    // refers to the |circular| variable, and by that to itself.
    circular("No argument");
  }
}

circular("hello");
circular();

这里,保存在循环中的函数指的是循环变量,从而指向自身。它隐含地引用自身,创建一个循环引用。即使循环超出范围,它仍然从函数范围引用。简单的垃圾回收器不会识别这个循环,不会收集函数。

http://stackoverflow.com/questions/1493453/example-of-a-circular-reference-in-javascript

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:Javascript中的循环引用示例?