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.length3 它能够用来递归匿名函数。
var a = function() { alert(arguments.callee); } var b = function() { a(); } b();

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