function test(one,two){
alert("one :"+arguments[0]+" two :"+arguments[1]); //one : a two:b
var one="haha";
var two="bbbb";
alert("one :"+arguments[0]+" two :"+arguments[1]); // one:haha two: bbbb
}
test("a","b");
argumenst应该是存的变量名吧??忘了,怎么回事儿??求解?或者推荐文章!谢谢!
5 回答

HUH函数
TA贡献1836条经验 获得超4个赞
var a = 0;
function test2() {
alert(a); //undefined a=10;
alert(a); //10
var a= 11;
alert(a) //11
}
test2();
这是一个作用域链的问题,不知道你能看明白不。
在test2的作用域链里只有一个a的,虽然定义在后面的,执行时始终都是那个a,而不是全局变量中的a
在来说你的问题
同样的,参数里的 one,two 和 函数中的 one,two 都是处于一个作用域链,因此他们在执行的时候其实都是一回事,
argument 返回的也只有对应的一个 one 和 two ,因为执行的时候只有一个one 一个two
至于 argument 和参数名之间的关系 的原理我也不清楚,再看看。

慕运维8079593
TA贡献1876条经验 获得超5个赞
argumenst是当前方法的参数集合。
每一个函数内部都会自动创建一个argumenst,
存放当前这个函数的调用参数。
js中的函数参数在声明时,不是必须的。
添加回答
举报
0/150
提交
取消