JavaScript:将所有内容包装在变量中有什么优势吗?

JavaScript: is there any advantage in wrapping everything in a variable?

本文关键字:什么 变量 包装 JavaScript      更新时间:2023-09-26

我已经多次看到以下JS编码风格:

document.addEventListener("DOMContentLoaded", function() {
    foo.run();
});
var foo = {
    bar: null,
    baz: null,
    run: function() {
        foo.init();
    },
    init: function() {
        foo.bar = 1;
    }
    ...
};

所以基本上除了addEventListener之外的所有东西都包装在一个JS对象中。这有什么好处吗?为什么?

这样做(以及使用函数而不是对象,因为这会给你本地范围)可以避免将很多东西放入全局命名空间中,因为它可能与其他内容冲突。

如果您想拥有模块化、可重用的代码,这一点尤其重要(您不知道您正在放入的应用程序尚未使用window.initwindow.bar

基本上,这与你可以在任何语言中进行的"全局变量不好"的讨论相同。