我在使用JSLint时收到此错误:只应删除属性
为什么不喜欢这个?我试图删除的变量非常大,所以我希望得到一个垃圾收集的跳转。这不行吗?
答案 0 :(得分:11)
delete
用于删除对象的属性,而不是常规变量(VariableObject上的属性)。
相反,您可以将对值的所有引用设置为null
。 JavaScript的GC会在需要时清理它。
答案 1 :(得分:2)
如果您只是想摆脱jslint警告,可以试试这个:
var myHugeVariable = ...;
// do stuff with huge variable
delete window.myHugeVariable;
这应该有效,因为所有全局变量实际上都是全局对象的属性。
答案 2 :(得分:1)
通常,没有必要释放变量。 javascript引擎会自动执行此操作。
或者,您可以让变量等于undefined,这样就可以传递jslint check。
var a=11;
a = undefined;
不推荐。