如果我执行以下操作(在全局范围内):
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事件.生成的对象在哪里存在并且可以访问它?
如果没有指向这个对象的引用(也就是你没有将它分配给任何变量或任何属性的值),那么就没有办法访问它,事实上它并没有生存,因为垃圾收集器可以回收这记忆立刻.
| 归档时间: |
|
| 查看次数: |
247 次 |
| 最近记录: |