arguments与实参的关系
- JScript code
function agtest(m,n) { var x=arguments; document.write(arguments); document.write("<br/>"); x[1]=5; document.write(n+"<br/>"); document.write(x[1]); } agtest();如上代码,当函数调用省略实参时,实参的值为undefined,这个明白。但当给x[1](即arguments[1]亦即本例中的n)赋值后,输出的n的值依然是undefined,求解
[解决办法]
arguments是实参组成的数组
[解决办法]
arguments对象当然是可写的。。无法输出n是因为在调用函数时如果没有传递相应的实参,在函数体内根本就不会创建n这个变量,arguments[1]自然也不会指向变量n的引用,考虑一下下面的代码:
- JScript code
function agtest(m, n) { arguments[0] = 2; arguments[1] = 'abc'; alert(m); alert(n);}agtest(1);