javascript - 解决 JavaScript 作用域问题的替代方法

标签 javascript scope

到目前为止,我一直在使用自执行匿名函数以避免出现变量命名问题:

(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/

相关文章:

javascript - 替换已弃用的 `keypress` DOM 事件

javascript - 通过Unity3D调用node.js中的javascript函数?

javascript - 动态页面和类似 Facebook 的框的解决方法

java - Eclipse 是否有办法检测不同作用域之间的变量名冲突?

c++ - C : var was not declared in this scope

ruby-on-rails - has_many 关系的每个最后一个元素的范围

IF语句中的javascript变量范围

javascript 函数柯里化(Currying)将默认参数传递给 vue.js 中的外部函数

javascript - 使用 JQuery 或 Javascript 或 HTML 的微调器?

c - C 中变量的作用域