javascript:将全局变量传递给函数

标签 javascript

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

这取决于您传递的变量是对象还是基元(数字stringbooleanundefinednull 是原语)值。对象通过引用传递,基元通过值传递。

就您而言,您正在传递对象:

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/

相关文章:

javascript - `player.animate( [ {transform: "旋转(10) "` ?

javascript - 如何检测字符串中的单位?

JavaScript 按钮链接阻止点击时滚动

javascript - 隐私 : Underscored prototype properties or encapsulated variables?

javascript - 如何设置DataTables的列宽

java - 如何使用 JSP 将表单数据解析到客户端 Java 类

javascript - 使用 Promise 而不拒绝它会导致内存泄漏吗?

javascript - 为 Javascript 数组中加载的图像添加 Alt 标签

javascript - Hammer.js 和 jQuery 混淆类

javascript - 为什么文本会附加到错误的 html 元素?