繁体   English   中英

JavaScript-将元素存储在全局变量中

[英]JavaScript - storing elements in global variables

我知道在JS中全局变量被认为是邪恶的,但是为了方便访问,我习惯将DOM元素存储在全局变量中。

假设全局变量的替代方法是闭包,因为它们提供了创建范围的方法,该范围不允许外部影响来修改内部变量,但是在DOM Elements的情况下是否有必要? 在全局变量中存储元素是否存在任何危险或不利之处?

自从我找到了解释为什么全局变量为何有害的文章后,我使用的是手册参考。

所以代替:

e = document.getElementById('example');
e.value = 'abc';

我用:

function e(id)
{

 return document.getElementById(id);
}
e('example').value = 'abc';

这是合法的选择吗?

DOM元素本身具有全球性。

由于您的文档是全局对象,因此无论如何都可以从应用程序中的任何位置访问它们。

您正在做的事情是好的,它可以促进代码的重用,但不能解决任何全局范围的问题-也就是说,无论您是否采用此策​​略,DOM元素在整个应用程序中都是可访问的。 :)

但是,另一个问题是,例如,如果将对同一DOM对象的引用存储在三个不同的变量中,那么您将更改这三个变量之一。 这也将导致对其余两个对象的DOM操作。 像任何其他语言/技术一样,这也不是技术本身的问题。 这是由于未遵循良好的编码方式引起的问题。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM