JavaScript callee caller
caller是function的属性
callee是arguments的属性
callee:返回正在执行的函数对象。
var sum = function (n) { if (1 == n) return 1; else return n + sum(n - 1); } console.log(sum(100));
var sum = function (n) { if (1 == n) return 1; else return n + arguments.callee(n - 1); } console.log(sum(100));
由上可以看出callee的使用
//caller
function callerDemo() { if (arguments.callee) { var a = callerDemo.caller.toString(); console.log(a); } else { console.log("this is a top function"); } } function handleCaller() { callerDemo(); } handleCaller();
//callee function calleeDemo() { console.log(arguments.callee); } calleeDemo();
结果:
由上可以看出caller的作用,所以最上面foo.caller为null
caller:返回了一个对当前函数调用的函数对象。