使用带有局部变量的’window’进行JavaScript中的全局访问

我想全局访问一个局部变量(不改变变量的名称空间或位置).我read,我可以使用’窗口.’,但它不起作用:

var myNameSpace = {
        window.localVar : 'foo'
    };

alert(window.localVar);  // not working

fiddle

这样的事可以吗?

另外,我已经了解了全局变量的风险.如果我几乎可以肯定变量的名称没有被重用的风险,那么它是否安全?

$myTotallyUniqueVarName
最佳答案
var myNameSpace = { };

myNameSpace.localVar = window.localVar = 'foo';

从另一个对象定义密钥时,您无法访问另一个对象,就像您尝试过的那样.但是你当然可以为同一个值创建多个引用/赋值,如上所示.

但是,请注意我们在这种情况下分配原始值,这意味着window.localVar和myNameSpace.localVar将保存它们自己的唯一值.任何改变都不会反映在另一方.

转载注明原文:使用带有局部变量的’window’进行JavaScript中的全局访问 - 代码日志