函数参数作为变量名

时间:2014-10-31 18:10:21

标签: javascript function variables arguments

我想使用#34; buyprice"作为变量名称

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

如果我跑

buy(buyprice1,10)

当我正在运行

时,它看起来像这样
var buy = function(buyprice,buypriceAdd){
        buyprice = buyprice1+10;
}

但我希望它结果如下:

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

任何想法如何将参数用作var名称?

4 个答案:

答案 0 :(得分:0)

不可能,无论您传递给函数的是什么,都将被设置为您在函数定义中命名的变量的值。

答案 1 :(得分:0)

JavaScript是按值传递,而不是传递引用。这意味着您只能将变量的值传递给函数,而不是对变量的内存位置的引用(例如,您可以在PHP中执行)。

您必须从函数中返回值并自行分配:

var buyprice1 = buy(buyprice1, 10);

答案 2 :(得分:0)

如果将变量名称作为字符串传递,则可以。

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

http://jsfiddle.net/5v4chywv/

答案 3 :(得分:0)

可能,但有些奇怪。

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

现在buyprice是3

数组和对象通过引用传递,因此您可以在其中混乱。