这里我自己试了一下,结果跟老师讲的不太一样诶~第三个参数没有传进来,但仍可以对第三个参数进行操作啊,加上严格模式后,x参数的值也一样可以修改。这是怎么回事
function foo(x,y,z){ //'use strict'; console.log('arguments.lenght:'+arguments.length); console.log('arguments[0]:'+arguments[0]); arguments[0] = 100; console.log('arguments[0]:'+arguments[0]); console.log('arguments[2]:'+arguments[2]); arguments[2] = 100; console.log('arguments[2]:'+arguments[2]); console.log(arguments.callee === foo); } foo(1,2); console.log('foo.name:'+foo.name); console.log('foo.length:'+foo.length);
在听一遍吧。用了严格模式arguments是传进来参数的副本。
你可以分别看下x,y,z的值是多少!