callee
- callee是arguments的属性成员,返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18function calleeLengthDemo(arg1, arg2) {
alert(arguments.callee.toString());
if (arguments.length == arguments.callee.length) {
window.alert("验证形参和实参长度正确!");
return;
} else {
alert("实参长度:" + arguments.length);
alert("形参长度: " + arguments.callee.length);
}
}
calleeLengthDemo(1); //实参长度:1,形参长度:2
//=============================================//
//应用于匿名函数调用自身场景
var fn=(function(n){
if(n>0) return n+arguments.callee(n-1);
return 0;
})(10);
alert(fn)
caller
- functionName.caller 返回调用者
1
2
3
4
5
6
7
8
9
10
11
12function caller() {
if (caller.caller) {
alert(caller.caller.toString());
} else {
alert("函数直接执行");
}
}
function handleCaller() {
caller();
}
handleCaller(); //handleCaller
caller(); // 函数直接执行