caller和callee的区别

文章类型:Javascript

发布者:hp

发布时间:2023-04-06

一:caller=>返回一个函数的引用,指向调用当前函数的函数

1:只有在执行时才有用

2:如果在javascript程序中,函数是由顶层调用的,则返回null

function a() {
console.log(a.caller)
}
a();//null

二:callee=>返回正在执行的函数本身的引用,它是arguments的一个属性

1:只有在函数执行时才有效

2:有一个length属性,可以用来获得形参的个数,用来比较形参和实参个数是否一致,即比较arguments.length是否等于arguments.callee.length

3: 可以用来递归匿名函数。

function a() {
console.log(arguments.callee)
}

a();