关于javascript:caller和callee的区别

8次阅读

共计 519 个字符,预计需要花费 2 分钟才能阅读完成。

caller

caller 是函数的属性,返回一个函数的援用,这个函数调用了以后的函数。

特点

1 这个属性只有当函数在执行时才有用
2 如果在 javascript 程序中,函数是由顶层调用的,则返回 null
var a = function() {alert(a.caller); 
} 
var b = function() {a(); 
} 
b();

下面的代码中,b 调用了 a,那么 a.caller 返回的是 b 的援用


var a = function() {alert(a.caller); 
} 
var b = function() {a(); 
} 
//b(); 
a();

a 在顶层调用,所以输入后果:null

callee

callee 放回正在执行的函数自身的援用,它是 arguments 的一个属性

特单

1 这个属性只有在函数执行时才无效
2 它有一个 length 属性,能够用来取得形参的个数,因而能够用来比拟形参和实参个数是否统一,即比拟 arguments.length 是否等于 arguments.callee.length
3 它能够用来递归匿名函数。
var a = function() {alert(arguments.callee); 
} 
var b = function() {a(); 
} 
b();

a 在 b 中被调用,然而它返回了 a 自身的援用

正文完
 0