【发布时间】:2014-05-07 10:50:42
【问题描述】:
我今天看到了这样的东西
var Visualizer = (function() {
function Visualizer() {
//...
}
Visualizer.prototype.function1 = function () { /* ... */ }
//...
return Visualizer;
})();
var viz = new Visualizer();
我不明白这与仅仅摆脱 iife 包装器相比有什么意义。
【问题讨论】:
-
好吧,在那种特定情况下并没有太多好处,但是如果您需要一些辅助函数怎么办?那时它很有用,因为您将它们保密,并且不会泄漏到全局范围。
-
就像将辅助函数放在包装器中而不是函数中一样?将它们放在函数中有什么区别?
-
如果你这样做,你每次调用
new时都会创建帮助函数。 -
它允许创建作用域变量,一些变量可能只在函数中可用,而在全局作用域中不可用。
标签: javascript iife