使用这个属性要注意 这个属性只有当函数在执行时才有用,如果在javascript程序中,函数是由顶层调用的,则返回null
function fun() {
console.log(fun.caller);
}
fun();
//结果为:null
function a() {
b();
function b() {
fun();
function fun() {
console.log(typeof fun.caller); //"function"
console.log(fun.caller === b); //true
}
}
}
a();
function sum(num) {
if (num <= 1) {
return 1;
} else {
return num * arguments.callee(num - 1);
}
}
console.log(sum(5));// 5*4*3*2*1=120
/* 它有一个length属性,
可以用来获得形参的个数,
因此可以用来比较形参和实参个数是否一致,
即比较arguments.length是否等于arguments.callee.length */
function a(num1, num2, num3) {
console.log(arguments.length); //实参长度为1
console.log(arguments.callee.length); //行参长度为3
}
a(0);