到目前为止,我一直在使用自执行匿名函数以避免出现变量命名问题:
(function () {
var a, b, c;
a = 5;
b = 10;
c = 15;
console.log('No problema!');
]());
我也知道使用onload函数也是一种替代方法:
window.onload = function () {
var a;
a = 25;
console.log('Yay!!!');
}
但我真的不喜欢我的代码完全被困在一个函数中——有没有一种方法可以让我对 JavaScript 对象采取帮助我避免使用自执行函数的方法?
最佳答案
在当今的大多数浏览器中,函数只是封装单元。如果要为变量创建范围,请将其设为函数的局部范围。
但今天有许多服务器端 JavaScript 安装,模块存在,许多基于 require.js .如果您使用 Nodejs 编写应用程序,您就会熟悉它。
不过,下一版本的 JavaScript 即将推出。这个名为 ES6、ES.next、Harmony 或 JavaScript.next 的新 JavaScript 将具有用于隐藏信息的模块以及 block 范围。许多浏览器现在开始实现该语言的功能。您可以在 http://repl.it 中进行试验, 在其他地方。您可以使用谷歌的 Traceur compiler将包含许多 ES6 提案的语言编译成今天的 JavaScript。
TL;DR:现在:坚持使用浏览器中的函数。或者为您的服务器端应用程序使用 require.js。等一下,因为 ES6 即将到来。
关于javascript - 解决 JavaScript 作用域问题的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11572187/