Javascript 更改函数内的全局变量值

Javascript 更改函数内的全局变量值,javascript,jquery,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";

下面是我的简单场景。我在
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
    };
});

放弃
var
语句。它将值分配给一个新的局部变量,而不是全局变量

在这里:

小提琴:

现在它起作用了


关于JS变量作用域的一个很好的阅读:

为什么不将
myFunction()
移动到同一
ready
scope?$(“#btnAddCustomer”)。单击(myFunction);此处调用。每当clint单击按钮时,它就会启动为什么不将not variable附加到窗口或文档?您可以给我一个示例,说明如何执行此操作吗?您仍然应该声明变量,但在全局范围内。很抱歉,此操作不完整。现在检查它。如果它不起作用,您的孤子仍然会在ready函数中获得Vp=“first value asign”值,但需要新值您是否在myfunction2上声明Vp?在myFunction函数中,需要更改Vp并将此新值传递给myfunction2的函数
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)

    };

});