您的位置:首页 > Web前端 > JavaScript

那些逐步掌握的JavaScript('arguments')

2015-06-28 10:47 495 查看

JavaScript中有一个隐藏属性可以访问参数,甚至改变参数。那就是arguments。

 

arguments也分不同情况下的执行情况,比如一般模式,严格模式。下面我们就几种不同举例说明。(本篇实质也算上一篇的延续)

 

 

一.通过arguments改变形参

 

!function(a){
arguments[0]=100;  //改变了形参1的值
console.log(a);  // 100
}(1);

 arguments是个伪数组,即通过下标访问参数。

 

 

 

注:上代码使用了立即调用执行函数

!function(){}();

这只是其中之一的写法,立即调用执行函数有其他很多种写法。 

 

 

 

二.不传参时,在use strict下修改形参

 

!function(a){
'use strict';
arguments[0]=100;
console.log(a);  // undefined
}();  //未传参

 上述代码中,我们可看,并未传参。

 

 

此处有两个要点:

1.当参数不传时默认是undefined,即使通过arguments手动修改依然是undefined。

2.当在严格模式下 arguments 已成为参数的静态副本,无论传不传都不会给参数造成影响。

 

 

 

三.参数为对象,在use strict下修改形参

 

!function(a){
'use strict';
arguments[0].x =100;
console.log(a.x);   //100
}({x:1});

 参数为对象(共享传递)时通过arguments,即使在use strict中改变依然会生效。

 

 

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: