那些逐步掌握的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中改变依然会生效。
阅读更多
相关文章推荐
- 高手教你15分钟掌握JavaScript面向对象编程
- 那些你希望在N年前就掌握的命令
- JavaScript 中那些“DOM小陷阱”
- JavaScript 中的Arguments对象的用法一例.
- javascript arguments
- Effective JavaScript Item 11 掌握闭包
- JavaScript-Arguments.callee 函数
- JavaScript之arguments.callee
- JavaScript基础知识逐步理解。
- javascript arguments(转)
- JavaScript 之arguments、caller 和 callee 介绍
- 练习 Javascript 中 arguments.callee 使用用法
- javascript 中的 arguments,callee.caller,apply,call 区别
- JavaScript快速掌握
- javascript中 关于eval的那些事
- 在JavaScript中,arguments是对象的一个特殊属性。
- JavaScript的apply、call以及arguments对象
- 理解JavaScript中的arguments,callee,caller,apply
- 说说掌握JavaScript语言的思想前提想学习js的朋友可以看看