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