这是我在这里提出的第一个问题,请原谅我对我所询问的主题以及我的英语不好的了解:)
这是我的问题:我需要调用以下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;
答案 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