javascript - IIFE 返回的对象 - 在内部引用内部或外部对象?

标签 javascript object reference scope iife

使用立即调用的函数表达式创建对象时,使用内部或外部对象引用有什么实际区别吗?示例:

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/

相关文章:

javascript - 如何在服务中缓存数据?

javascript - 从 api 解释 JSON 的最佳方法是什么?

reference - 遍历迭代器并改变值是否会更改集合中的值?

javascript - 哪个维护: JavaScript function references or Boolean + IF conditions?效率更高

c++ - 按值返回的变量的相同地址

javascript - 如何在jQuery和javascript上以ajax post方式播放声音效果?

javascript - jQuery Tabulator 插件不工作

java - 使用 jFrame 数组?

javascript - Scrapy 选择器无法返回所需的字符,可能是由于 Javascript

vba - 是否有将 Excel 文件格式/设置保存到对象的标准过程?