问答详情
源自:6-4 [JavaScript]函数属性arguments

关于arguments属性的问题

这里我自己试了一下,结果跟老师讲的不太一样诶~第三个参数没有传进来,但仍可以对第三个参数进行操作啊,加上严格模式后,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);


提问者:慕娘5227020 2016-04-20 19:38

个回答

  • 慕妹5044199
    2016-04-21 15:40:43
    已采纳

    在听一遍吧。用了严格模式arguments是传进来参数的副本。

    你可以分别看下x,y,z的值是多少!