在IIFE的关闭中,我已经深入了解了我的JavaScript函数所依赖的所有依赖项。
赞成
在闭包中访问变量引用时,性能提升很小,而不是将词法范围扩展到根/窗口对象。
如果你的命名空间变量有点长(即app.calculator.fileExporter),可以通过闭包中的变量引用(即calcFileExporter),从而获得另一个小的性能提升。 JsPerf Reference
使用外部类/功能一目了然。
缺点
可能难以维护,并且难以保持一致。即做 我真的觉得要添加另一个外部闭包参考,只是为了 使用这一个电话?
更大的内存占用。我不确定它有多大,但由于这个原因,内存占用空间更大。
我的问题是:
示例:
app.calc.fileExporter = (function (document, localStorageWrapper, calcFileImporter) {
// Do some stuff!
}(window.document, app.localStorageWrapper, app.calc.fileImporter));