2014-10-31 153 views
-1

我想使用的說法 「buyprice」 變量名函數參數變量名

var buy = function(buyprice,buypriceAdd){ 
     buyprice = buyprice+buypriceAdd; 
} 

,如果我跑

buy(buyprice1,10) 

它看起來像這樣的IM運行

var buy = function(buyprice,buypriceAdd){ 
     buyprice = buyprice1+10; 
} 

但我想它結果是這樣的:

var buy = function(buyprice,buypriceAdd){ 
     buyprice1 = buyprice1+10; 
} 

任何想法如何使用參數作爲var名稱?

+0

這是什麼意思?你想達到什麼目的? – LcSalazar 2014-10-31 19:00:47

回答

0

如果你通過變量名作爲一個字符串這是可能的。

buyprice1=200; 
var buy = function(buyprice,buypriceAdd){ 
     window[buyprice] = window[buyprice]+buypriceAdd; 
} 
buy('buyprice1',10); 
alert(buyprice1); 

http://jsfiddle.net/5v4chywv/

+0

非常感謝你! :D像一個魅力工作:D – 2014-11-01 10:40:06

0

無論您傳遞給函數,都將被設置爲您在函數定義中命名的變量的值。

0

JavaScript is pass-by-value,而不是通過引用。這意味着您只能將變量的值傳遞給函數,而不是變量的內存位置的引用(例如,您可以在PHP中執行此操作)。

你不得不從函數返回值,並自行指定:

var buyprice1 = buy(buyprice1, 10); 
0

的可能,但也有一些古怪。

var buy = function(input) { 
    input.buyprice += input.buypriceAdd 
} 
args={buyprice:1,buypriceAdd:2} 
buy(args); 

現在buyprice是3個

數組和對象按引用傳遞,這樣你就可以亂繞在他們裏面。