gpt4 book ai didi

javascript - 全局 "window"引用如何影响 iife 中的垃圾收集?

转载 作者:行者123 更新时间:2023-11-29 17:18:01 26 4
gpt4 key购买 nike

function BigObject() {
var a = '';
for (var i = 0; i <= 0xFFFF; i++) a += String.fromCharCode(i);
return new String(a); // Turn this into an actual object
}

// iife 1 / window gets compressed into w
(function (w, $) {
var x = new BigObject();
$("#foo").click(function () {
w._gaq.push("foo");
});
})(window, window.jQuery);

// iife 2 / window reference left global
(function ($) {
var x = new BigObject();
$("#foo").click(function () {
window._gaq.push("foo");
});
})(window.jQuery);

鉴于我对垃圾回收以及项目如何保存在内存中的了解很少,与 2 相比,1 似乎可能会导致一些内存问题。在这一点上更多的是学术问题,而不是实际的瓶颈……球有帮助吗?

最佳答案

您正在倒退地考虑垃圾收集。从广义上讲,当您无法从根源追踪到事物时,事物将被标记为垃圾。拥有对全局对象的本地引用并不意味着全局对象对您有引用,因此它不会影响任何对象的生命周期。

关于javascript - 全局 "window"引用如何影响 iife 中的垃圾收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15440715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com