2016-11-09 96 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) { 
     // ... 
    }); 
} 
相關問題