代码描述:javascript callee和caller属性用法。javascript callee和caller属性用法代码下载
本章节将会对标题中的两个概念做一下简单介绍,希望能够对需要的朋友带来一定的帮助。 一.callee属性: 此属性可以返回正在执行函数对象正文,就是函数的代码字符串内容。 callee是arguments对象的一个属性。 语法结构:
<script> [function.]arguments.callee </script>
参数解析: 1.function:可选,函数的名称。 2.arguments:具体可以参阅javascript的arguments对象一章节。 代码实例: 实例一:
<script> function func(){ var a=1; var b=2; var c=a+b; } console.log(func.arguments.callee); </script>
上面的代码会报错,这是因为callee属性在函数执行的时候才会有效,归根接地是只有在函数执行的时候才会有arguments对象,否则是个空对象。 实例二:
<script> function func(){ var a=1; var b=2; var c=a+b; console.log(func.arguments.callee); } func(); </script>
上面的代码会输出函数的源码。 实例三: 利用此属性可以实现递归功能,如下:
<script> var a=0; function func(){ a=a+1; if(a>20) return; arguments.callee(); } func(); console.log(a); </script>
二.caller属性: 此属性可以返回一个函数的引用,此函数调用了当前函数。 只有在函数执行的时候此属性才是有效的。 如果函数是顶层调用,返回值是null。 如果在字符串上下文中使用此属性,那么返回的就是函数的正文,也就是函数的字符串代码。 实例代码: 实例一:
<script> function func(){ var a=2; var b=3; done() } function done(){} console.log(done.caller) </script>
上面的代码会返回一个空对象,只有当函数执行的时候此属性才会有效。 实例二:
<script> function func(){ var a=2; var b=3; done() } function done(){ console.log(done.caller) } func(); </script>
请绑定手机号,在继续操作
注意:只有绑定手机以后,才可使用网站全部功能