arguments编辑

来源:互联网 发布:校园网络安全教育图 编辑:程序博客网 时间:2024/06/08 08:06


本词条缺少概述信息栏名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

目录

1arguments

 说明
 属性

2举例

 参数的长度
 隐藏的参数
 改变参数值
 递归

1arguments编辑

说明

在JavaScript中,arguments是对象的一个特殊属性。arguments对象就像数组,但是它却不是数组。
1:arguments是收到的实参副本
  在词法分析中, 首先按形参形成AO的属性,值为undefined
  当实参传来时, 再修改AO的相应属性.
  2:并把所有收到实参收集起来,放到一个arguments对象里
  t(a,b,c){},
  调用时: t(1,2,3,4,5) 5个参数
  此时 , AO属性只有a,b,c,3个属性, arguments里有1,2,3,4,5, 所有的值

属性

length, 获取arguments对象的长度。
callee, 引用当前正在执行的函数。

2举例编辑

参数的长度

window.onload = function(){
abc(1,2,3);
}
function abc(){
//虽然这里没有引用参数,但是arguments仍能捕获到
alert(arguments.length);
}//output 3

隐藏的参数

function abc(x,y){
alert(x+","+y);
for(var i=0;i<arguments.length;i++){
alert(" "+arguments[i]);
}
}//output: 1,2
1 2

改变参数值

function abc(x,y,z){
arguments[2] = "hello";
for(var i=0;i<arguments.length;i++){
alert(" "+arguments[i]);
}
}//output: 1 2 hello

递归

求1到n的自然数之和
function add(n){
if(n == 1) return 1;
else return n + arguments.callee(n-1);
}
其实callee对于没有命名的函数调用自身时就是一个福音了,比如对于没有命名的函数求1到n自然数之和
var result = function(x){
if(x == 1) return 1;
return x+arguments.callee(x-1);
}
0 0
原创粉丝点击