将外部依赖项放在JavaScript闭包中 - 优点和缺点

时间:2016-11-18 03:22:14

标签: javascript design-patterns closures

IIFE的关闭中,我已经深入了解了我的JavaScript函数所依赖的所有依赖项。

赞成

  • 在闭包中访问变量引用时,性能提升很小,而不是将词法范围扩展到根/窗口对象。

  • 如果你的命名空间变量有点长(即app.calculator.fileExporter),可以通过闭包中的变量引用(即calcFileExporter),从而获得另一个小的性能提升。 JsPerf Reference

  • 使用外部类/功能一目了然。

缺点

  • 可能难以维护,并且难以保持一致。即做 我真的觉得要添加另一个外部闭包参考,只是为了 使用这一个电话?

  • 更大的内存占用。我不确定它有多大,但由于这个原因,内存占用空间更大。

我的问题是:

  1. 是否存在大量内存占用问题。 (即50多个类,都有~3个闭包参考变量)。这些只是微不足道的指针,尺寸不对,对吧?
  2. 这是推荐的模式吗?我已经看到这用于jQuery / $,但不常用于其他对象。
  3. 示例:

    app.calc.fileExporter = (function (document, localStorageWrapper, calcFileImporter) {
    
        // Do some stuff!
    
    }(window.document, app.localStorageWrapper, app.calc.fileImporter));
    

0 个答案:

没有答案