JavaScript:将所有内容封装在变量中有什么好处吗?
我多次看到以下JS编码风格:JavaScript:将所有内容封装在变量中有什么好处吗?,javascript,coding-style,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; } ... }; 因此
document.addEventListener("DOMContentLoaded", function() {
foo.run();
});
var foo = {
bar: null,
baz: null,
run: function() {
foo.init();
},
init: function() {
foo.bar = 1;
}
...
};
因此,基本上除了addEventListener
之外的所有内容都被包装在JS对象中。这有什么好处吗?为什么?这样做(也可以使用函数而不是对象,因为这样可以提供局部范围)可以避免将太多内容放入全局名称空间,从而可能与其他内容发生冲突
如果您想拥有模块化的、可重用的代码(您不知道要加入的应用程序尚未使用window.init
或window.bar
),这一点尤为重要
基本上,这是相同的“全局变量是坏的”您可以用任何语言进行讨论。啊……对不起,我的错误。刚刚更正了。这样做是为了控制成员函数和/或变量的可见性。我只看到一个变量,
foo
?您想将其与其他样式进行比较吗?@Bergi所有其他变量或函数都包装在foo
中。因此有了这个样式只有在变量上。使用闭包来完全隐藏成员函数和变量会更好吗?