目前,我正在开发一个遗留网页,它使用了大量的JavaScript、jQuery、微软客户端JavaScript和其他库。底线-我不能从头开始重写整个页面,因为业务无法证明它的合理性。所以..。这就是它的本质。无论如何,我需要用一个变量污染全局名称空间(我真的没试过)。我想有三个选择-
var x = 0;
var x = 0;
$("whatever").data("x", 0);
一个隐藏的表单字段,并使用jQuery -JavaScript设置/检索该值
有没有更好的方法?我查看了现有的代码堆,我不相信变量可以在函数中限定作用域。
发布于 2010-05-19 23:25:54
您可以在jQuery对象内创建一个名称空间,如下所示:
$.mynamespace = {
myVar : "something",
myVar2 : "somethingElse"
};
或者:
$.mynamespace = {};
$.mynamespace.myVar = "something";
$.mynamespace.myVar2 = "somethingElse";
请记住,任何名为'mynamespace‘的插件方法都将被覆盖,因此请确保使用合理的名称。
发布于 2010-05-24 16:46:35
对我来说,处理这种情况的最好方法是在窗口对象中定义一个对象:
window.my_config =
{
my_var1 : 1,
my_var1 : 2,
my_var1 : 3
};
这将使您的作用域保持整洁和干净。当您使用window.my_config
访问全局数据库时,任何查看代码的人都会知道正在访问全局数据库。
发布于 2010-05-19 23:29:25
您可以在全局作用域中创建哈希并将其用作命名空间:
MyNamepace={}
MyNamespace.newvar = 'value'
// MyNamespace.newvar => 'value'
https://stackoverflow.com/questions/2866866
复制相似问题