【问题标题】:Javascript: Scope of a Variable across different Javascript filesJavascript:跨不同Javascript文件的变量范围
【发布时间】:2010-10-26 10:04:48
【问题描述】:

我在我的一个 JavaScript 文件中定义了一个变量。我想在 JavaScript 文件中访问该变量的值。在一个文件中,我正在初始化该变量的值。

我无法访问其他 JS 文件中的赋值。

我有什么遗漏的吗?

【问题讨论】:

  • 你能告诉我们你是如何声明它的吗?以及具体在哪里

标签: javascript scope


【解决方案1】:

如果它们在全局范围内或者可以从全局范围内访问,您应该能够访问它们。

例如,我的 HTML 中的 script 元素中有一个像这样的对象字面量...

<script type="text/javascript">
    var config = {
       basePath: '/path/'
    };
</script>

我可以在任何其他后续 JavaScript 文件中使用 config.basePath 访问它。

【讨论】:

  • 这个可以放在单独的js文件里吗?我已经尝试过了,但我似乎无法让它工作。我明白了,Uncaught ReferenceError: config is not defined
  • @diek 你需要研究 JS 作用域,但是可以在不同的文件中。
  • 嘿亚历克斯,谢谢我实际上采用了不同的方法。但我确实让你的工作也一样。
【解决方案2】:

它必须是一个全局变量,或者在同一范围内可访问(例如,其他全局属性上的属性),并且必须在您访问它之前定义它,这意味着脚本的顺序包括事项。

例如,您不能将其放在一个文件中:

(function() {
   var something = "blah";
})();

...并在下一个文件中访问它,因为该变量的作用域是该函数。

【讨论】:

    【解决方案3】:

    此外,一旦全局定义,您可能需要通过以下窗口对象访问它:window.your_variable OR window['your_variable']

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-07
      • 2012-12-23
      • 2011-05-10
      • 2011-07-07
      • 2010-10-19
      相关资源
      最近更新 更多