使用javascript模块模式是否安全?

is it safe to use javascript module pattern?

本文关键字:安全 是否 模式 javascript 模块 使用      更新时间:2023-09-26

我一直在使用javascript模块模式一段时间。

我向我的一个同事展示了一个模块模式的例子。他说下面的代码会导致内存泄漏。

var test = (function(){
   var events = {
      // my functions go here
   }
   return {
     // return something
   }
}());

他说,由于事件变量是一个对象,我没有为它设置null,即使我为测试设置null,也会导致内存泄漏。

据我所知,上面的代码片段没有问题,因为我没有传递事件。

我需要建议!

我认为你的代码很好。闭包中的内存泄漏发生在对DOM元素的引用时,因为循环引用(foo保留element, element保留foo,因此它们永远不能被垃圾收集):

function foo(element, a, b) {
    element.onlick = function(a, b) { /* uses a and b */ };
}

我的信念来源在这里

@moon -何必太担心呢?代码在两次访问之间执行的频率是多少?会丢失多少字节?然后你必须考虑不同的浏览器来解释和运行你的Javascript。

总之——把精力集中在别处——那么你会得到更好的回报。