JS的caller与callee

版权声明:转载请注明出处 https://blog.csdn.net/nk1212582/article/details/81323604

版权声明:转载请注明出处 https://blog.csdn.net/nk1212582/article/details/81323604

概念

当前函数:当前正在执行的函数

caller是当前函数的调用者

callee是当前函数本身

用法

functionName.caller,其中functionName是当前函数

arguments.callee,因为callee是arguments的一个属性

实例

var a = function(){
	console.log(arguments.callee);    //(1)
	console.log(a.caller);            //(2)
}

var b = function(){
	a();
}

b();

(1)处的输出是

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

输出内容即是函数a的定义

(2)处的输出是

ƒ (){
	a();
}

输出内容即是函数b的定义

注意事项

如何当前函数是由顶层调用的,那么caller的值是null

callee有一个length属性,用来获取形参的个数,即arguments.callee.length是形参的个数。另外,arguments.length是实参个数

参考资料

https://blog.csdn.net/laijieyao/article/details/43404953

猜你喜欢

转载自blog.csdn.net/nk1212582/article/details/81323604