js函数的内部属性---arguments,callee,caller

在接下来的几篇文章中,我大家谈谈函数的内部属性,arguments,calleecaller

1arguments,是一个类数组对象,其中包含了传入函数的所有参数,主要用途是,保存函数的参数;

代码1

function aa(b){alert(arguments);}

aa(4);

 


function aa(a,b,c,d){alert(arguments.length);}

aa(1,2,3,4);

 

function aa(a,b,c,d){alert(arguments[2]);}

aa(1,2,3,4);

 

 

function Hi() {

  for(var i=0; i<arguments.length; i++) {

alert("Hi, " + arguments[i])

}

 }

 Hi("Cat", "Alice");

 

 

 

2)另外一个属性callee,该属性是一个指针,指向拥有这个arguments对象的函数。

3)另一个属性calleer,该属性指向调用当前函数的函数的引用。

 

Arguments.callee典型应用:

代码1

var i = 1 setTimeout( function() {

 alert(i)if (i++<3) setTimeout(arguments.callee, 1000)

 }, 1000);

 

代码2:(递归时,实现代码解耦)

function test1(num){

 if(num<=1){

 return 1

}else

 return num*arguments.callee(num-1);

}

test1(5);//120

 

Arguments.callee.caller

 

 

Arguments.callee.caller 例子:

 

f();

function f() {

alert(arguments.callee.caller); // undefined

g();

}

 functiong() {

alert(arguments.callee.caller) ;

 }

 

 

 

 

这一章简单介绍到这,后续几篇文章,将介绍函数中最重要的属性(没有之一),prototype和很牛逼的两个方法,apply,call();水平有限,请多多指教。

 


本文出自 “7439523” 博客,请务必保留此出处http://7449523.blog.51cto.com/7439523/1427110

js函数的内部属性---arguments,callee,caller,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。