Javascript跨脚本变量值

Cla*_*lma 1 javascript scope extjs

我想我在这里遗漏了一些东西,但我真的看不出它是什么.在整个页面中,不应该在函数外声明的变量可用吗?我在这里尝试的是我以前见过的,所以我想基本的想法应该有效.在这种情况下,我总是得到警告告诉我"假",所以我猜它总是进入,因此,skipUserDataEntry具有未定义的值而不是true.希望有人能提供帮助.

    <script type="text/javascript">
     skipUserDataEntry = true;
    </script>

    <script type="text/javascript"> 
        Ext.onReady(function () {
         if (typeof skipUserDataEntry == "undefined")
      var skipUserDataEntry = false;
         alert (skipUserDataEntry);
        }
     </script>
Run Code Online (Sandbox Code Playgroud)

Mar*_*ten 5

几个问题.你的全局变量很好.但是,在函数()ANYWHERE中声明的任何变量都将作为该WHOLE函数的作用域.

这意味着您的行读取var skipUserDataEntry = false;实际上是skipUserDataEntry为函数范围声明一个新变量,从而影响全局变量.

删除var,您将只查看全局范围变量.

    Ext.onReady(function () {
     if (typeof skipUserDataEntry == "undefined")
       skipUserDataEntry = false;
     alert (skipUserDataEntry);
    });
Run Code Online (Sandbox Code Playgroud)

其次,你错过了一个结束括号.