JavaScript:在变量中包装所有内容是否有任何优势?

时间:2014-12-04 06:14:58

标签: javascript coding-style

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

document.addEventListener("DOMContentLoaded", function() {
    foo.run();
});

var foo = {
    bar: null,
    baz: null,

    run: function() {
        foo.init();
    },
    init: function() {
        foo.bar = 1;
    }
    ...
};

基本上除addEventListener之外的所有内容都包含在JS对象中。这有什么好处吗?为什么呢?

1 个答案:

答案 0 :(得分:2)

执行此操作(以及使用函数而不是对象,因为它为您提供本地范围)可以避免将大量内容放入全局命名空间中,因为它可能与其他内容冲突。

如果你想拥有模块化,可重复使用的代码(你不知道你被放入的应用程序还没有使用window.init或{{1 }}

基本上,这可以用任何语言进行“全局变量都不好”的讨论。