【问题标题】:Turn a JavaScript local variable into a global variable将 JavaScript 局部变量转换为全局变量
【发布时间】:2010-05-07 11:28:29
【问题描述】:

我有一个 JavaScript 函数来生成一个变量。该功能由 onclick 按钮事件激活。

生成该变量后,我需要将其用作全局变量,以便其他 JavaScript 进程可以使用该变量。

我该怎么做?

【问题讨论】:

  • 仅供参考,更不用说进程了,除了我认为 setTimeout 之外,javascript 甚至不使用线程

标签: javascript


【解决方案1】:

您应该能够将变量的值添加到全局 window 对象的属性中:

window.yourVarName = yourVarName;

那么其他函数就可以通过直接引用yourVarname来访问yourVarName。无需使用window.yourVarName

但请记住,一般来说,global variables are evil

【讨论】:

  • 为什么是邪恶的?介意解释一下吗?
  • 在Javascript中,默认是windows对象,为什么还要加上window前缀
  • @Srinivas:主要是清晰度,以避免隐式全局变量的恐惧。
  • @Srinivas 使赋值更清晰,如果声明变量,不包括它会使它变得模棱两可。
【解决方案2】:

在函数作用域外声明变量:

var foo = null;

function myClickEvent() {
    foo = someStuffThatGetsValue;
}

更好的是,使用单个全局变量作为应用程序的命名空间(“MyApp”),并将值存储在其中:

var MyApp = {
    foo: null
};

function myClickEvent() {
    MyApp.foo = someStuffThatGetsValue;
}

函数本身甚至可以包含在其中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-05
    • 1970-01-01
    相关资源
    最近更新 更多