2016-11-09 101 views
1

如何将方法functionName1quantity局部变量的值转换为functionName2并将其分配给该变量中的局部变量?将方法的局部变量转换为外部函数

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

var functionName2 = function() { 
    var test1 = ""; 
    functionName1(); 
} 
+1

调用'functionName2()'从'valueChanged'函数中,传递'val'作为参数 –

+0

检查的JavaScript closues ..你会得到公平'https:// developer.mozilla.org/en-US/docs/Web/JavaScript/Closures'的想法。 –

+0

@Roger你能否确认你需要知道valueChanged时的值,或者只是价值本身,假设你使用wan-spinner,你可以用'$ newChecjoutNumberPicker.val()'得到(这是XY问题吗?) –

回答

1
valueChanged: function(ele, val) { 
    myFunc(val); 
} 

然后使用val变量时该值换你fonction。

0

在更高的范围内使其成为 全球

$(function(){ 
    var quantity; 

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

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

全局变量很糟糕,mmmkay。 –

+0

@RoryMcCrossan - 不,他们不是。但无论如何,编辑安抚你吗? –

+1

他们真的是http://stackoverflow.com/questions/10525582/why-are-global-variables-considered-bad-practice – Liam

5

可以使用回调函数:

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

var functionName2 = function() { 
    var test1 = ""; 
    functionName1(function (quantity) { 
     // ... 
    }); 
} 
相关问题