JavaScript如何传递参数

时间:2010-02-18 16:51:13

标签: javascript

function f1(i1, i2) {
  log(i1);
  log(i2);
}

function f2(i1,i2){
  f1(arguments);
}

f2(100,200); 

在上面的函数f1中,i1得到[100,200],而i2未定义。

从f2传递参数到f1的正确方法是什么。

6 个答案:

答案 0 :(得分:7)

函数对象具有apply()方法:

f1.apply(null, arguments)

传递的第一个参数是被调用函数中应该是this的对象,第二个参数是包含被调用函数的参数值的数组。

答案 1 :(得分:0)

对于这种确切的情况:

function f2(i1,i2){ f1(i1, i2); }

对于任意数量的参数,请参阅某些答案

答案 2 :(得分:0)

如果必须使用arguments对象:

function f2(i1, i2) {
    f1(arguments[0], arguments[1]);
}

我真的很想知道你为什么不直接传递i1和i2,但我会给你怀疑的好处,并假设这个代码比你的真实代码简单得多。< / p>

答案 3 :(得分:0)

我不明白你的问题,如果你这样做会有效:

<script>
function f1(i1, i2) { alert(i1+","+i2); log(i1); log(i2); }

function f2(i1,i2){ f1(i1,i2); }

f2(100,200); 

</script>

答案 4 :(得分:0)

f1不是return任何结果。即使它确实如此,您也需要返回一个数组来返回多个值。

function f1(i1, i2) {
  var returnArray = new Array();
  var returnArray[0] = log(i1);
  var returnArray[1] = log(i2); 
  return returnArray;
}

function f2(i1,i2) {
  var results = f1(i1, i2);
}

f2(100,200); 

答案 5 :(得分:-1)

为什么不这样做:

function f2(i1,i2){ f1(i1,i2); }