一尘不染

如何在jQuery中存储全局值(不一定是全局变量)?

javascript

目前,我正在使用一个大量的JavaScript,jQuery,Microsoft客户端JavaScript和其他库的旧网页。底线-
我无法从头开始重写整个页面,因为企业无法证明它的合理性。所以…就是这样。无论如何,我需要使用变量来污染(我确实没有尝试过)全局名称空间。我在考虑三个选项-

  1. 只需使用普通的JavaScript声明存储/检索它- var x = 0;

  2. 使用jQuery在DOM标签中存储/获取值- $("body").data("x", 0);

  3. 使用隐藏的表单字段,并使用jQuery设置/获取值- $("whatever").data("x", 0);

有没有更好的办法?我查看了现有的一堆代码,但我不认为变量可以在函数中确定范围。


阅读 1329

收藏
2020-05-01

共1个答案

一尘不染

您可以在jQuery对象中创建一个名称空间,如下所示:

$.mynamespace = { 
    myVar : "something", 
    myVar2 : "somethingElse" 
};

要么:

$.mynamespace = {};
$.mynamespace.myVar = "something";
$.mynamespace.myVar2 = "somethingElse";

请记住,任何名为“ mynamespace”的插件方法都将被覆盖,因此请确保使用明智的名称。

2020-05-01