【问题标题】:Make Javascript variable global w/ MooTools使用 MooTools 使 Javascript 变量成为全局变量
【发布时间】:2009-09-15 23:11:40
【问题描述】:

我目前正在使用 mootools-1.2.3,但无法在函数外部访问变量。

我需要在 domready 函数中定义变量,否则 DOM 尚未加载,选择器函数将无法工作(我无法将脚本放在我无法控制的 HTML 的末尾当框架写入对外部脚本的引用时)。

是否有在另一个函数中引用相同的变量?

window.addEvent('domready', function() {
    var myVar = new myClass('someURL', 'elementSelectorString');
    document.addEvent('click', function(event) {
        myVar.doSomeStuff(var1, var2);
    });
});

window.addEvent('unload', function(event) {
    // Reference to myVar variable in domready function.
    myVar.cleanUpStuff();
});

【问题讨论】:

    标签: javascript class scope css-selectors mootools


    【解决方案1】:

    var myVar; 放在顶层(在addEvents 之上),并从domready 函数中删除var。变量在声明它们的范围内是可见的。

    【讨论】:

    • 完全省略 var 关键字也可以解决问题。
    • 确实,尽管一些更迂腐的 JS 环境会警告你使用未声明的全局变量(这是正确的,因为这通常是一个错误)。
    【解决方案2】:

    全局变量实际上是窗口对象的属性,所以可以使用:

    window.myVar
    

    【讨论】:

      【解决方案3】:

      只需定义 myVar 而不使用 var 关键字。在分配期间缺少var 意味着全局。

      window.addEvent('domready', function() {
          myVar = new myClass('someURL', 'elementSelectorString');
      

      【讨论】:

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