当变量超出范围时JavaScript垃圾收集
JavaScript是否支持垃圾收集?
例如,如果我使用:
function sayHello (name){
var myName = name;
alert(myName);
}
我是否需要使用“删除”删除myName
变量或者我只是忽略它?
忽略它 - 在sayHello函数完成之后,myName落在范围之外并被gc化。
没有。
delete
用于从对象中删除属性,而不用于内存管理。
JavaScript支持垃圾收集。 在这种情况下,由于你明确地声明了函数中的变量,它将在函数退出并在某个时间之后被收集时超出范围,并且(2)不能成为delete
的目标(下面链接的每个引用) 。
在delete
可能有用的地方是,如果你隐式声明变量,这将它们放在全局范围内:
function foo()
{
x = "foo"; /* x is in global scope */
delete x;
}
但是,隐式定义变量是一种不好的做法,因此始终使用var
,而不必关心delete
。
有关更多信息,请参阅:https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/delete_Operator
链接地址: http://www.djcxy.com/p/27183.html上一篇: JavaScript garbage collection when variable goes out of scope