JavaScript的arguments对象
2015-10-22 00:37
531 查看
arguments对象JavaScript当前函数的一个内置属性
每个函数中都自带一个arguments属性,可以在函数中调用。arguments非常类似Array,但实际上又不是一个Array实例
说arguments类似数组是因为其具备数组相同的访问性质及方式,能够由arguments来访问对应的单个参数的值,并拥有数组长度属性length。但它不具有数组的方法。
arguments的属性:
length, 获取arguments对象的长度。
callee, 引用当前正在执行的函数。(与caller区别)
function a(x,y){ console.log(arguments[0]); console.log(arguments.length); } a(11,13); //输出 11 2 function a(x,y){ arguments[0].reverse(); } a(11,13); //输出 arguments.reverse is not a function
reverse是数组的内置函数,但argument却没有reverse函数,所以argument不是真正的数组。
arguments对象存储的是实际传递给函数的参数,而不局限于函数声明所定义的参数列表
在词法分析中, 首先按形参形成arguments的属性,值为undefined当实参传来时, 再修改arguments的相应属性.
function a(x,y){ console.log(arguments.length); } a(11,13,34);//实际传递参数3个 //输出 3
所以用arguments对象可以设置函数的默认参数
function a(){ var a = arguments[0] ? arguments[0] : 1; var b = arguments[1] ? arguments[1] : 2; console.log(a+b); } a();//输出3 a(2);//输出4 a(3,4);//输出7
arguments与真正传的参数是一致的
即函数中的第一个参数和arguments[0]都是对这个参数值的引用function a(i){ console.log(i); console.log(arguments[0]); i++; console.log(i); console.log(arguments[0]); arguments[0]++; console.log(i); console.log(arguments[0]); } a(10); //输出 10 10 11 11 12 12
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- IE8开发人员工具教程(二)
- 在flex中执行一个javascript方法的简单方式
- Flex结合JavaScript读取本地路径的方法
- PowerShell中执行Javascript的方法示例
- javascript asp教程第六课-- response方法
- javascript asp教程More About Recordsets