我有一个全局变量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?
}
如果传递全局变量,是否仍在使用全局变量?
谢谢。
最佳答案
如果全局变量是一个对象,那么您仍在使用全局变量。否则,它是副本。
如下所示和注释,您的变量指向相同的全局对象。
var MyGlobalVar = null;
function PlayWithMyGlobal() {
MyGlobalVar = new Object(); // <--- Object
MoreFun(MyGlobalVar); // <--- Passing object reference
}
function MoreFun(TheVar) {
TheVar.test = 'Did I modify global?';
alert(TheVar === MyGlobalVar); // true
alert(MyGlobalVar.test); // "Did I modify global?"
}
关于javascript - javascript:将全局var传递给函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9448684/