jQuery/Javascript:在函数中定义全局变量?

Sna*_*man 8 javascript variables jquery global

我有这个代码:

        var one;
        $("#ma1").click(function() {
            var one = 1;
        })
        $("body").click(function() {
            $('#status').html("This is 'one': "+one);
        })
Run Code Online (Sandbox Code Playgroud)

当我点击身体时,它说:这是'一个':未定义.如何定义要在另一个函数中使用的全局变量?

Roc*_*mat 20

var从函数内部删除.

    $("#ma1").click(function() {
        one = 1;
    })
Run Code Online (Sandbox Code Playgroud)

  • 为了扩展它的工作原理,当你在函数中使用`var`时,你创建了一个新的独立局部变量.通过删除`var`,你实际上是在想要查找以前定义的变量的链(在本例中是全局的`one`). (6认同)

keu*_*une 14

如果要创建全局变量,请将其绑定到windowobject

window.one = 1;
Run Code Online (Sandbox Code Playgroud)


Sel*_*gam 12

    var one;//define outside closure

    $("#ma1").click(function() {
        one = 1; //removed var 
    })
    $("body").click(function(e) {
        $('#status').html("This is 'one': "+one);
    })
Run Code Online (Sandbox Code Playgroud)