为了账号安全,请及时绑定邮箱和手机立即绑定

javascript arguments问题

javascript arguments问题

喵喵时光机 2018-12-07 10:50:17
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 和参数名之间的关系 的原理我也不清楚,再看看。
查看完整回答
反对 回复 2018-12-24
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

argumenst是当前方法的参数集合。

每一个函数内部都会自动创建一个argumenst,

存放当前这个函数的调用参数。

js中的函数参数在声明时,不是必须的。

查看完整回答
反对 回复 2018-12-24
?
慕容708150

TA贡献1831条经验 获得超4个赞

明白了!但是我想arguments访问的是作用域内部的变量集吧!不然也不会对形参覆盖,arguments对实参的访问之也会改变的吧!

查看完整回答
反对 回复 2018-12-24
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

arguments获取的是传过来参数的值

查看完整回答
反对 回复 2018-12-24
  • 5 回答
  • 0 关注
  • 569 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号