【问题标题】:Global variables in javascriptjavascript中的全局变量
【发布时间】:2012-05-29 16:03:18
【问题描述】:

我在页面标题之后和包含所有 javascript 的代码之前定义了一个全局变量“模式”。

<?php require('header.php'); ?>

<script type="text/javascript">
    var mode = ""; // flag to set to clicks to external site
</script>

<?php require('mainpage.php'); ?>

我在主页中定义了这样的功能。

<script type="text/javascript" src="channels.js"></script>

然后我像这样访问全局变量。

function channels() {
        if ( mode == "external" ) {
            continue;
        }
}

但这会导致脚本崩溃。似乎不知道全局变量。

我应该如何定义要在文件中访问的全局变量。

【问题讨论】:

  • continue; 在那里做什么?
  • 信息太少,崩溃与那个全局变量无关。如果代码中没有循环,为什么要使用continue
  • 如果在定义mode 之前加载channel.js 会发生什么?此外,使用全局变量是一个非常糟糕的主意。如果您的应用程序中开始有大量与其他 javascript 交互的 javascript,您可能需要查看 RequireJS
  • “崩溃”是什么意思?你得到什么错误?

标签: javascript global-variables


【解决方案1】:
window.mode = "something";

function channels() {
    // window.mode 
}

【讨论】:

    【解决方案2】:

    var - 那不是全局变量。要定义它,请不要使用 var

        <script type="text/javascript">
        mode = ""; // flag to set to clicks to external site
    </script>
    

    那么 mode 将是 window 对象的一个​​属性。

    【讨论】:

    • 但是为什么会导致脚本崩溃呢?顺便说一句,我没有对此投反对票。
    • 即使使用var,它仍将位于范围的顶层并且随处可用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 2022-01-01
    相关资源
    最近更新 更多