使用立即調用的函數表達式創建對象時,使用內部對象引用還是外部對象引用有什麼實際區別?例如:IIFE在內部返回對象引用的內部或外部對象?
var external = (function(){
var internal = {};
internal.a = function(){
//... do stuff
}
internal.b = function(){
internal.a();
//^OR v
external.a();
}
return internal;
})();
兩者都有效。我可以想到的唯一區別可能是internal
在被調用後被清除,如果沒有直接調用它的話,但這可能是沒有意義的,因爲同一個對象居住在external
。如果有重複,請原諒我 - 我無法清楚地說出我想要知道的關於搜索引擎的知識,以便給我一個明確的答案。
謝謝!
它們是一樣的東西,直到有些東西改變'external'的值... – Pointy
@Pointy我同意,好點:)。編輯回答,以包含您的評論。謝謝。 –
如果我引用'internal'和稍後在'external'上引用的某些更改會發生什麼?它仍然指向原來的「內部」值還是指向新的「外部」值? –