我有一个全局变量 MyGlobalVar 和一些如下所示的代码:
var MyGlobalVar = null;
function PlayWithMyGlobal() {
MyGlobalVar = new Object();
.... adding properties to MyGlobalVar
MoreFun(MyGlobal);
}
function MoreFun(TheVar) {
is TheVar here a local or just a reference to the global?
}
如果我传递全局变量,我是否仍在使用全局变量? 谢谢。
最佳答案
If I pass the global variable, am I still working with the global? Thanks.
这取决于您传递的变量是对象还是基元(数字
、string
、boolean
、undefined
、null
是原语)值。对象通过引用传递,基元通过值传递。
就您而言,您正在传递对象:
MyGlobalVar = new Object();
在 JS 中,对象是通过引用传递的。所以你仍在处理该变量。
您可以这样确认:
var MyGlobalVar = null;
function PlayWithMyGlobal() {
MyGlobalVar = new Object();
MoreFun(MyGlobalVar);
}
function MoreFun(TheVar) {
MyGlobalVar.foo = 'I am foo'; // property created here
}
PlayWithMyGlobal();
console.log(MyGlobalVar.foo); // I am foo
关于javascript:将全局变量传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9448684/