0
我遇到了一个片段,我怀疑它可以用直接的方式编写。可能有人请告诉我是什么空两个片段之间的区别:使用函数的私有函数的引用创建对象
var printer = (function() {
var printerInstance;
var obj = {
f1: function() {},
f2: function() {}
};
return {
getInstance: function() {
if(!printerInstance) {
printerInstance = obj;
}
return printerInstance;
}
};
})();
而且
var printer = (function() {
var printerInstance;
function create() {
function f1() {}
function f2() {}
return {
f1: f1,
f2: f2
}
}
return {
getInstance: function() {
if(!printerInstance) {
printerInstance = create();
}
return printerInstance;
}
};
})();
我不明白为什么对象在函数内部在第二个例子中创建。请澄清。
在这两个示例中,即时函数应用程序都将创建一个新的作用域,以便'printerInstance','obj'和'create'不会泄漏到周围的作用域中。 – Sylwester