使用立即调用的函数表达式创建对象时,使用内部或外部对象引用有什么实际区别吗?示例:
var external = (function(){
var internal = {};
internal.a = function(){
//... do stuff
}
internal.b = function(){
internal.a();
// ^ OR v
external.a();
}
return internal;
})();
两者都有效。我能想到的唯一区别是,如果没有直接调用它,内部可能会在调用后被清理,但这可能没有实际意义,因为相同的对象存在于外部。如果有重复,请原谅我 - 我无法清楚地表达出我想知道的内容,以便搜索引擎给我一个明确的答案。
谢谢!
最佳答案
它们是完全相同的东西(正如 @Pointy 指出的,它们是同一件事,直到有人在外部更改external
),但感觉很奇怪在这里使用 external
,这不是很清楚,因为您在它自己的定义中使用它。
关于javascript - IIFE 返回的对象 - 在内部引用内部或外部对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20220121/