[英]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.