js Arguments对象
来源:互联网 发布:淘宝促销广告语大全 编辑:程序博客网 时间:2024/05/02 03:08
js的内置对象Arguments是函数的实际函数,他保存函数的所有参数。Arguments是一个对象,typeof Arguments得到的是Object,但有length,index的属性。强调的是Arguments不是数组Array。引用一个形式参数可以用参数名,也可以用arguments[]数组形式,其中arguments[0]表示第一个参数。
Arguments和Array的区别:
js不会主动为你判断函数传递的参数个数,多传了,多余的部分就没有被使用,少传了,那么没传的参数值就是undefined。通过Arguments的length属性可获取Function参数个数。
把arguments对象转换成一个真正的数组
虽然arguments对象不是一个真正的javascript数组,但是我们还是可以轻易的把它转换成标准的数据 ,然后进行数组操作。
var args = Array.prototype.slice.call(arguments);
改变arguments中的参数:
说明一下arguments与真正传的形式参数是一致的:
比如,你给函数传了一个叫param的参数,并且只有这一个参数,那么param与arguments[0]都是对这个参数值的引用,改变其中一个值,即改变了二者所有的值。
function change(param)
{
//比如我传的param为simaopig,那么alert就是simaopig,
//如果啥也没传就会alert undefined
alert(param);
//用arguments[0]改变了这个参数的值
arguments[0] = 'xiaoxiaozi';
//没错,这个值变成了xiaoxiaozi
alert(param);
}
arguments的callee属性:
arguments的callee属性是用来引用当前正在执行的函数,这对未命名的函数调用自身非常有好处。
现在用arguments的这个callee同样可以简单的实现
//用函数直接量,采用arguments.callee属性实现递归函数
var result = function(x){
if(x<=1) return 1;
return x*arguments.callee(x-1);
};
在最后提醒大家一点,既然这个arguments这么厉害,那么我们就不要为变量命名为arguments了,事实上arguments是javascript的保留字之一。嗯。
- js arguments对象
- js arguments对象说明
- js arguments对象
- js arguments对象
- JS arguments 对象
- JS的arguments对象
- js 的 arguments 对象
- js arguments对象
- JS Arguments对象
- js中的arguments对象
- js的arguments对象
- js-arguments对象
- js arguments对象
- js arguments对象
- js arguments对象
- js Arguments对象
- js中的arguments对象
- JS arguments对象
- Percona Toolkit介绍
- 1016. 部分A+B (15)
- 擅长排列的小明
- Handler消息传递机制
- spring mvc 注解
- js Arguments对象
- 倒排链表
- 组合数
- POJ 3268Silver Cow Party bfs最短路
- JSP六个动作详解...
- Git学习笔记(四)---工作区与暂存区
- LeetCode - Valid Parenthesis
- 黑马程序员-OC学习日记六之Block小结
- 【设计模式】HeadFirst设计模式(一):策略(Strategy)模式