因为我希望我的JS仅在DOMContentLoaded之后运行,所以它是这样的:
document.addEventListener('DOMContentLoaded', function() {
//
});
由于我想限制作用域级别,并且将代码包含在匿名函数中通常是一个好习惯,所以我这样做是这样的:
(function() {
//
})();
那么,编写这样的代码有意义吗?
document.addEventListener('DOMContentLoaded', function() {
(function() {
//
})();
});
答案 0 :(得分:1)
立即调用的功能表达式的重点是提供命名空间以避免污染全局范围。由于document
已经是一个全局变量,因此像您所做的那样将其放置在外部很有意义,这将使您可以在同一DOMContentLoaded
回调中编写更多IIFE,如下所示:
document.addEventListener('DOMContentLoaded', function() {
// IIFE 1
(function() {
})();
// IIFE 2
(function() {
})();
...
});