Javascript 将方法的局部变量转换为外部函数

Javascript 将方法的局部变量转换为外部函数,javascript,Javascript,如何将functionName1的valueChanged方法的quantity局部变量的值获取到functionName2中,并将其分配给其中的局部变量 var functionName1 = function() { $newCheckoutNumberPicker.WanSpinner({ maxValue: 99, minValue: 0, valueChanged: function(ele, val) {

如何将
functionName1
valueChanged
方法的
quantity
局部变量的值获取到
functionName2
中,并将其分配给其中的局部变量

var functionName1 = function() {
    $newCheckoutNumberPicker.WanSpinner({
        maxValue: 99,
        minValue: 0,
        valueChanged: function(ele, val) {
            var quantity = val              
        }
    });    
}

var functionName2 = function() {
    var test1 = "";
    functionName1();
}
然后,当函数中的值为changer时,使用
val
变量

然后,当值在函数中更改时,使用
val
变量。

使其在更高范围内成为全局变量

$(function(){
    var quantity;

    var functionName1 = function() {
        $newCheckoutNumberPicker.WanSpinner({
            maxValue: 99,
            minValue: 0,
            valueChanged: function(ele, val) {
                quantity = val              
            }
        });
    }

    var functionName2 = function() {
        alert(quantity);
    }
});
在更高的范围内实现全球化

$(function(){
    var quantity;

    var functionName1 = function() {
        $newCheckoutNumberPicker.WanSpinner({
            maxValue: 99,
            minValue: 0,
            valueChanged: function(ele, val) {
                quantity = val              
            }
        });
    }

    var functionName2 = function() {
        alert(quantity);
    }
});

您可以使用回调函数:

var functionName1 = function(callback) {
    $newCheckoutNumberPicker.WanSpinner({
        maxValue: 99,
        minValue: 0,
        valueChanged: function(ele, val) {
            callback(val)       
        }
    });    
}

var functionName2 = function() {
    var test1 = "";
    functionName1(function (quantity) {
        // ...
    });
}

您可以使用回调函数:

var functionName1 = function(callback) {
    $newCheckoutNumberPicker.WanSpinner({
        maxValue: 99,
        minValue: 0,
        valueChanged: function(ele, val) {
            callback(val)       
        }
    });    
}

var functionName2 = function() {
    var test1 = "";
    functionName1(function (quantity) {
        // ...
    });
}

valueChanged
函数中调用
functionName2()
,将
val
作为参数传递检查javascript克隆。。你会很清楚这是怎么回事<代码>https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures@Roger您能否确认您需要知道值更改时的值,或者仅仅是值本身,假设您使用wan微调器,您可以使用
$newchecOutNumberPicker.val()
(即这是XY问题吗?)调用
函数名2()
valueChanged
函数中,将
val
作为参数传递检查javascript克隆。。你会很清楚这是怎么回事<代码>https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures@Roger您能否确认您需要知道值更改时的值,或者仅仅是值本身,假设您使用wan spinner,您可以使用
$newchecOutNumberPicker.val()
(即这是XY问题吗?)全局变量不好,嗯,他们真的是“我的朋友”。至少您更新了一些不同于其他“答案”:)如果
valueChanged
是一种异步方法,我认为这是为了回调的需要,那么这是相当脆弱的。如果在
valueChanged
回调之前调用
functionName2
,您将得到错误的值。这意味着您需要知道何时调用了
valueChanged
,这意味着您也可以传入回调或封装在承诺中。“我的”示例?不是说全局变量不好,嗯。它们实际上是@iwrestledabearon。至少您更新了一些不同于其他“答案”:)如果
valueChanged
是一种异步方法,我认为这是为了回调的需要,那么这是相当脆弱的。如果在
valueChanged
回调之前调用
functionName2
,您将得到错误的值。这意味着您需要知道何时调用了
valueChanged
,这意味着您也可以传入回调或封装在承诺中。“我的”示例?不是我