本章节将会对标题中的两个概念做一下简单介绍,希望能够对需要的朋友带来一定的帮助。

一.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>

代码描述:javascript callee和caller属性用法。javascript callee和caller属性用法代码下载



123 164



用户评论
大牛,别默默的看了,快登录帮我点评一下吧!:)      登录 | 注册



×
×
51前端

注册

×
绑定手机

请绑定手机号,在继续操作

×
单次下载支付

应付金额:279

支付完成后,回到下载页面,在进行下载

官方QQ群
意见反馈
qq群

扫描上面二维码加微信群

官方QQ群

jQuery/js讨论群
群号:642649996
Css3+Html5讨论群
群号:322131262

加群请备注:从官网了解到