访问变量javascript/jquery

Nic*_*ick 0 jquery

我有以下代码

$('#first').click(function() {
    myVar = $(this).next().val();
});

$('#second').blur(function() {
    console.log(myVar);
});
Run Code Online (Sandbox Code Playgroud)

如何在#second中访问myVar?

T.J*_*der 5

这取决于代码的更广泛的上下文.你可以这样做:

(function() {
    var myVar;

    $('#first').click(function() {
        myVar = $(this).next().val();
    });

    $('#second').blur(function() {
        console.log(myVar);
    });
})();
Run Code Online (Sandbox Code Playgroud)

这会创建一个匿名函数并立即调用它.匿名函数的目的是为提供一个容器myVar ,而不使myVar全局变量.通常最好避免全局变量(尤其是因为它们成为window对象的属性,已经有各种各样的垃圾卡在其上).具体来说,您分配给您clickblur事件的函数将成为对匿名函数调用内数据的闭包.他们可以访问myVar,但没有别的.更多这里.

如果您的代码已经在包含范围内,或者您不关心添加到全局命名空间,则不需要匿名函数.