在DOM中存储全局变量的javascript

javascript storing global variables in DOM

本文关键字:javascript 全局变量 存储 DOM      更新时间:2023-09-26

我有一个相当大的脚本,其中包含大约 60 个全局变量。我正在考虑使用命名空间模式来封装我的脚本,并且只有一个引用一个对象的全局变量。

尽管这种模式被认为是最佳实践,但我也在考虑另一种选择:将全局变量存储在 DOM 中,隐藏的div 中,并使用 $('#MyGlobalVar1').text() 访问它们。这是个好主意吗?

感谢您的建议。

不,这不是一个好主意。

它用非语义数据污染了 DOM,效率也较低。这甚至比污染全局JS命名空间更糟糕,更糟糕的是,它只允许您存储字符串。

即使我建议您使用命名空间对象来保存和引用数据,您也可以简单地在代码周围放置一个外部自调用函数,以防止破坏全局对象。

所以你从

var global1 = true,
    global2 = true;

(function() {
    var global1 = true,
        global2 = true;
    // rest of all app logic
}());

除此之外,由于您使用的是jQuery,因此您还可以使用jQuerys .data()方法。它旨在引用特定节点的数据,但它也在内部存储到 ECMAscript 对象中。