使用" arguments"调用JS函数用于多个参数

时间:2015-06-22 15:39:43

标签: javascript arguments

这是我在这里提出的第一个问题,请原谅我对我所询问的主题以及我的英语不好的了解:)

这是我的问题:我需要调用以下JS函数(附带的代码按原样运行,当传递给它命名并编号为params时)但我不知道"先验&#34 ;它可以从调用代码接收多少参数。

我搜索并理解,在这种情况下,可以使用"参数",它应该充当"容器"对于非指定数量的参数。

不幸的是,我对JS知之甚少,而且我特别是因为它的语法和语义而疯了(到现在为止,对我来说太过批评)。

是否有人愿意帮助我阐明如何正确编写此代码段的发送和接收JS语句?

或者,至少,请指出一些我可以轻松理解并自行处理的示例代码?

提前谢谢大家,非常感谢任何帮助! :)

以下是我正在谈论的代码:



<script>


Number.prototype.padDigit = function() { return (this < 10) ? '0'+this : this; }
//function timeSummation(id1, id2, id3, id4, id5) {
	
	function timeSumLUN(arguments) {
  var t1 = document.getElementById(OLUN_1).value.split(':');
  var t2 = document.getElementById(OLUN_2).value.split(':');
  var t3 = document.getElementById(OLUN_3).value.split(':');
  var t4 = document.getElementById(OLUN_4).value.split(':');
  var t5 = document.getElementById(OLUN_5).value.split(':');
  
 
  
  var mins = Number(t1[1])+Number(t2[1])+Number(t3[1])+Number(t4[1])+Number(t5[1]);
  var hrs = Math.floor(parseInt(mins / 60));
  hrs = Number(t1[0])+Number(t2[0])+Number(t3[0])+Number(t4[0])+Number(t5[0])+hrs;
  mins = mins % 60;
  return hrs.padDigit()+':'+mins.padDigit();
 
}

</script>
&#13;
echo "<td nowrap><input type='text' class='table_font'  size='5' maxlength='5' value='".$_ore_lavorate_LUN."' name='OLUN[]' id='OLUN_".$placeholder_id_cella."' 
			onchange='document.getElementById('somma_LUN').value = timeSumLUN(".$_placeholder_timeSumLUN_finale.")'></td>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:3)

执行该函数时,arguments对象在函数体中被特殊处理。无论函数声明的形式参数如何,例如function(param1, param2) {}arguments对象始终可用,并始终反映在运行时传递给函数的参数。您不能将其指定为形式参数(即function(arguments) {}),只需在函数体中引用它:

function() {
  arguments.length; // the number of args received at runtime.
}

arguments对象可以用作数组,可以迭代访问所有传递的参数,但它实际上不是数组,而是特殊处理的对象。

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/arguments