javascript在DOM中存储全局变量

时间:2012-04-26 13:26:30

标签: javascript

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

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

感谢您的建议。

2 个答案:

答案 0 :(得分:9)

不,这不是一个好主意。

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

答案 1 :(得分:3)

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

所以你从

开始
var global1 = true,
    global2 = true;

(function() {
    var global1 = true,
        global2 = true;

    // rest of all app logic
}());

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