【问题标题】:Function argument as variable name函数参数作为变量名
【发布时间】:2014-12-28 03:27:23
【问题描述】:

我想使用参数“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;
}

知道如何将参数用作变量名称吗?

【问题讨论】:

  • 这有什么意义呢?你想达到什么目的?

标签: javascript function variables arguments


【解决方案1】:

如果您将变量名作为字符串传递,这是可能的。

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

http://jsfiddle.net/5v4chywv/

【讨论】:

    【解决方案2】:

    不可能,你传递给函数的任何东西都会被设置为你在函数定义中命名的变量的值。

    【讨论】:

      【解决方案3】:

      JavaScript 是 pass-by-value,而不是 pass-by-reference。这意味着您只能将变量的值传递给函数,而不是对变量内存位置的引用(例如在 PHP 中可以这样做)。

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

      var buyprice1 = buy(buyprice1, 10);
      

      【讨论】:

        【解决方案4】:

        可能,但有些奇怪。

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

        现在buyprice是3

        数组和对象是通过引用传递的,所以你可以在里面乱搞。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-09-13
          相关资源
          最近更新 更多