改变函数内的全局变量值

sak*_*kir 3 javascript jquery

这是我的简单场景.我在ready()函数内部定义了一个变量,用于指定第一个值.

我也有外面的功能ready().我想要做的是在我的新函数中使用更改的变量.

这是我的JavaScript代码:

var myFunction = function() {
    // I wanna change Vp value here and wanna 
    // use this function with the new value        
    Vp = "new value";

    myFunction2 (); 
};

$(document).ready(function () {

    var Vp = "first value asign";
    $('#btnAddCustomer').click(myFunction);

    var myFunction2 = function() {
        // I will use Vp variable here with new value
    };
});
Run Code Online (Sandbox Code Playgroud)

aIK*_*Kid 8

放弃var声明.它将值赋给新的局部变量,而不是全局变量.

这里:

var Vp = "first assigned value"
var myFunction2;

var myFunction = function() {
    // I wanna change Vp value here and wanna use this function with the new value        

    Vp =  "new value"
    myFunction2(); 

    };

$(document).ready(function () {

    Vp = "first value asign";

    $('#btnAddCustomer').click(myFunction);

    myFunction2 = function() {

    alert(Vp)

    };

});
Run Code Online (Sandbox Code Playgroud)

小提琴:http://jsfiddle.net/XGGvv/10/

现在工作.

关于JS变量范围的一个很好的解读:http://coding.smashingmagazine.com/2009/08/01/what-you-need-to-know-about-javascript-scope/

  • 您仍应声明变量,但在全局范围内. (3认同)