这就是我包装所有 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/