为什么在Javascript中创建元素全局变量是不好的?

Ale*_*lex 0 javascript variables events internet-explorer global

我听说在JavaScript中创建全局元素并不是一个好主意.我不明白为什么.它是IE无法处理的东西吗?

例如:

    div = getElementById('topbar');
Run Code Online (Sandbox Code Playgroud)

mar*_*cgg 7

我认为这不是一个实施问题,而是一个好的与坏的做法问题.通常全局*是不好的做法,应该避免(全局变量等),因为你从来不知道项目的范围将如何演变以及如何包含文件.

我不是一个很大的JS狂热者,所以我无法向你详细说明为什么JS事件很糟糕但是Christian Heilmann在这里讨论JS最佳实践,你可以看看.也尝试谷歌搜索"JS最佳实践"

编辑:关于全局变量的维基百科,也可能适用于您的问题:

[全局变量]通常被认为是不良实践,正是因为它们的非局域性:全局变量可以从任何地方修改(除非它们驻留在受保护的内存中),并且程序的任何部分都可能依赖于它.因此,全局变量具有创建相互依赖性的无限潜力,并且添加相互依赖性会增加复杂性.请参阅远处的行动.但是,在少数情况下,全局变量可能适合使用.例如,它们可用于避免在多个函数中连续传递常用变量.

通过http://en.wikipedia.org/wiki/Global_variable