javascript arguments问题

    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应该是存的变量名吧??忘了,怎么回事儿??求解?或者推荐文章!谢谢!

喵喵时光机
浏览 570回答 5
5回答

HUH函数

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

argumenst是当前方法的参数集合。 每一个函数内部都会自动创建一个argumenst, 存放当前这个函数的调用参数。 js中的函数参数在声明时,不是必须的。

慕容708150

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

繁星淼淼

arguments获取的是传过来参数的值
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript