Javascript:没有名字的对象会发生什么?

Mat*_*son 4 javascript

如果我执行以下操作(在全局范围内):

var myObject = {name: "Bob"};
Run Code Online (Sandbox Code Playgroud)

我有办法在内存中指向该对象(即字符串标识符"myObject)".我可以打开控制台并输入:myObject.name控制台将响应:

"Bob"
Run Code Online (Sandbox Code Playgroud)

现在,如果我输入:

{name: "Jane"};
Run Code Online (Sandbox Code Playgroud)

我正在某个地方创造那个物体,我猜它继续生活在某个范围内.有什么方法可以找到它吗?它是否存在window于某些通用商店的某个地方?

编辑:有人说它只会收集垃圾.

那么这个例子怎么样:

var MyObject = function(){
    $("button").click(this.alert);
}

MyObject.prototype.alert = function(){
    alert("I heard that!")
}

new MyObject();
Run Code Online (Sandbox Code Playgroud)

它不能被垃圾收集,因为它的回调绑定到DOM事件.生成的对象在哪里存在并且可以访问它?

Den*_*ret 5

如果没有指向这个对象的引用(也就是你没有将它分配给任何变量或任何属性的值),那么就没有办法访问它,事实上它并没有生存,因为垃圾收集器可以回收这记忆立刻.

  • 我喜欢认为它已经逃脱并生活在羔羊身上. (2认同)
  • @Yatrix我认为这是'在林中',但'生活在羊羔'听起来更美味! (2认同)