caller
返回一个对函数的引用,该函数调用了当前函数。
functionName.caller
functionName 对象是所执行函数的名称。
注意:甚用caller,这个属性是非标准的,支不支持全看各大浏览器的心情
callee
1.在严格模式下无法使用callee
2.返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文
3.length属性,可以用来获得形参的个数,因此可以用来比较形参和实参个数是否一致
function check(arg1, arg2) {
if (arguments.length == arguments.callee.length) {
alert("形参和实参长度相同!");
return;
} else {
alert("实参长度:" + arguments.length);
alert("形参长度: " + arguments.callee.length);
}
}
3 它可以用来递归匿名函数,因为arguments.callee返回正被执行的 Function 对象
var sum = function (n) {
if (n < = 0)
return 1;
else
return n +arguments.callee(n - 1)
}