关闭选项卡时的Javascript引用循环?

关闭选项卡时的Javascript引用循环?,javascript,Javascript,我开始涉足Javascript,我担心内存泄漏,因为我试图在Javascript中进行面向对象的编程 如果我这样做: function ObjectOne() { this.setRelation = function(objectTwo) { this.objectTwo = objectTwo; } } function ObjectTwo() { var self = this; self.setRelation = function(objectOne) {

我开始涉足Javascript,我担心内存泄漏,因为我试图在Javascript中进行面向对象的编程

如果我这样做:

function ObjectOne() {
  this.setRelation = function(objectTwo) {
    this.objectTwo = objectTwo;
  }
}

function ObjectTwo() {
  var self = this;
  self.setRelation = function(objectOne) {
    this.objectOne = objectOne;  
    objectOne.setRelation(self);
  }
}

var objOne = new ObjectOne();
var objTwo = new ObjectTwo();
objTwo.setRelation(objOne);
。。。这是否会在Javascript中创建一个可能导致内存泄漏的引用循环

第二个问题是,当您关闭浏览器的选项卡时,是否会消除此引用循环?

从2012年起,所有现代浏览器都会提供一个标记和清除垃圾收集器

标记和清除垃圾收集器可以处理引用循环

新类型非常小心地避免了弱参考回路因使用而变得困难。请参见

从2012年起,所有现代浏览器都会提供一个标记和清除垃圾收集器

标记和清除垃圾收集器可以处理引用循环


新类型非常小心地避免了弱参考回路因使用而变得困难。见

所以基本上你害怕
var obj1={},obj2={obj1:obj1};obj1.obj2=obj2?“这是否会创建一个参考循环”-是。“…这可能导致内存泄漏?”-不。是的,这是我基本上害怕的。我打了你们两个!所以基本上你害怕
var obj1={},obj2={obj1:obj1};obj1.obj2=obj2?“这是否会创建一个参考循环”-是。“…这可能导致内存泄漏?”-不。是的,这是我基本上害怕的。我打了你们两个!谢谢!解释了很多!谢谢!解释了很多!