gpt4 book ai didi

javascript - JavaScript 中的匿名命名空间有什么问题吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:32:47 25 4
gpt4 key购买 nike

当我想到也许我可以通过创建一个匿名命名空间来停止污染命名空间时,我正在编写一些带有命名空间的代码以减少困惑。我只是想确保这是有效的,并且没有我没有想到的隐藏问题。

基本上,代码是这样的:

new function() {
// bunch of private helper functions and variables
// ...

this.loadEventHandler = function()
{
// do load stuff
};

this.resizeEventHandler = function()
{
// do resize stuff
};

window.onload = this.loadEventHandler;
window.onresize = this.resizeEventHandler;
};

有什么我没有考虑到的吗?这不会被垃圾收集器或其他东西取出,对吧?

最佳答案

您所拥有的将起作用,但更惯用、更简洁的方法是使用 IIFE —立即调用的函数表达式

您上面的代码动态创建了一个函数,并使用 new 调用它,这导致创建了一个新对象。该对象添加了 loadEventHandlerresizeEventHandler,然后您将其添加到全局对象。然后该函数存在,释放所述对象以供将来垃圾收集。

IIFE 允许您进入并向全局对象添加您想要的内容,而不会将其与所有私有(private)助手等混在一起,并且在此过程中不会创建任何无用的对象。

(function() {
// bunch of private helper functions and variables
// ...

function loadEventHandler()
{
// do load stuff
};

function resizeEventHandler()
{
// do resize stuff
};

window.onload = loadEventHandler;
window.onresize = resizeEventHandler;
})();

关于javascript - JavaScript 中的匿名命名空间有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23798143/

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