javascript - 使用名称而不是匿名函数

标签 javascript

这就是我包装所有 JavaScript 的方式:

;(function($, window, undefined) {
    var document = window.document;
    var myFunction = function() {}
})(jQuery, window);

但现在我需要从该闭包之外调用 myFunction。

window.addEventListener("offline", function(e) {
    myFunction();
}, false);

问:如何命名自执行匿名函数,以便我可以从全局范围调用 myFunction?

最佳答案

将函数分配给您要使用的任何对象/范围的属性。

;(function($, window, undefined) {
    var document = window.document;
    var myFunction = function() {};
    window.myFunction = myFunction;
})(jQuery, window);

不过,您最好希望从 IIFE 返回一些封装了所有“导出”的内容。

var exports = (function($, window, undefined) {
    var document = window.document;
    var myFunction = function() {};
    return {
        "myFunction": myFunction
    };
})(jQuery, window);

window.addEventListener("offline", function(e) {
    exports.myFunction();
}, false);

AMD对于这种编程风格很有帮助。

关于javascript - 使用名称而不是匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15665526/

相关文章:

javascript - 使用 javascript 按钮更改 html,并使用自动递增数字选取多个值

javascript - VSCode ProblemMatcher 严重性映射

javascript - AngularJS 中的条件

javascript - 如何使用 Javascript 创建具有特定自定义数据属性的 div 数组

javascript - JS中如何减少函数内的重复代码

javascript - 如何为内容和左侧菜单设置单独滚动

javascript - 为什么要分派(dispatch)组件而不是操作文件?

javascript - 如何找到我想要传递信息的Vue组件?

javascript - 在txt文件中给出值的输出(多个)

javascript - 一次仅将 jquery 脚本应用于一个类