【发布时间】:2015-08-29 18:50:48
【问题描述】:
问:我想弄清楚为什么这段代码中有删除语句?
我的假设是,一旦语句完成执行,foo 将被取消引用,因此无需显式执行此操作。
(function () {
var foo = globalObject;
foo.bar = function () {
//code here
}
delete foo;
}());
这是怎么回事?
【问题讨论】:
-
如我所见,没有处理关于 foo 变量的操作...也许这段代码是错误的?
-
我的理解是创建了
foo变量,因此在语句执行期间不会引用全局对象。实际功能包含大约 1000 行代码 @monkeyinsight -
您的评论“我的假设是 foo 将在语句完成执行后被取消引用,因此无需显式执行此操作。”您的意思是在执行整个脚本后执行该变量?你需要删除 foo 来删除对 foo 的所有引用并使其未定义。
标签: javascript closures