javascript caller callee的使用

上网的时候经常看到这俩个属性,一直也没有看下是干什么用的,今天正好看了下文章,了解了下并做个记录..

1、caller

返回一个对函数的引用,该函数调用了当前函数

function callerDemo() {
          if (callerDemo.caller) {
              alert(callerDemo.caller);
          } else {
              alert("this is a top function");
          }
      }
function handleCaller() {
          callerDemo();
}

caller是Function对象的一个属性,从结果可以看出它返回一个调用当前函数的函数的源代码

2、callee

返回正被执行的函数的源代码

callee是arguments的一个属性,同时它拥有length属性,用于验证参数个数是否相等

function calleeDemo() {
          alert(arguments.callee);
      }
function calleeLengthDemo(arg1, args, arg3) {
          if (arguments.length == arguments.callee.length) {
              alert("形参和实参个数相等!");
          } else {
              alert("实参长度:" + arguments.length);
              alert("形参长度:" + arguments.callee.length);
          }
}

原文地址:https://www.cnblogs.com/ygm125/p/2025603.html