我有一个全局变量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/

10-13 03:35