zoukankan      html  css  js  c++  java
  • arguments.callee.caller

    1.Arguments
    Arguments是一个类似数组但不是数组的对象,说它类似数组是因为其具有数组一样的访问性质及方式,可以由arguments[n]来访问对应的单个参数的值,并拥有数组长度属性length。还有就是arguments对象存储的是实际传递给函数的参数,而不局限于函数声明所定义的参数列表,而且不能显式创建 arguments对象。arguments对象只有函数开始时才可用。

    function ArgTest(a, b){
       var i, s = "The ArgTest function expected ";
       var numargs = arguments.length;     // 获取被传递参数的数值。
       var expargs = ArgTest.length;       // 获取期望参数的数值。
       if (expargs < 2)
            s += expargs + " argument. ";
       else
            s += expargs + " arguments. ";
       if (numargs < 2)
            s += numargs + " was passed.";
       else
            s += numargs + " were passed.";
         s += " "
       for (i =0 ; i < numargs; i++){      // 获取参数内容。
         s += "    Arg " + i + " = " + arguments[i] + " ";
         }
       return(s);                          // 返回参数列表。
    }
    

    2.caller
    返回一个对函数的引用,该函数调用了当前函数。
    functionName.caller
    functionName 对象是所执行函数的名称。
    对于函数来说,caller属性只有在函数执行时才有定义。如果函数是由顶层调用的,那么 caller包含的就是 null 。
    3.callee
    返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。
    callee属性是 arguments 对象的一个成员,它表示对函数对象本身的引用,这有利于匿名函数的递归或者保证函数的封装性。
    arguments.length是实参长度,arguments.callee.length是形参长度,由此可以判断调用时形参长度是否和实参长度一致。

    function calleeDemo() {
          alert(arguments.callee);
    }
    //用于验证参数
    function calleeLengthDemo(arg1, arg2) {
        if (arguments.length==arguments.callee.length) {
              window.alert("验证形参和实参长度正确!");
            return;
          } else {
              alert("实参长度:" +arguments.length);
              alert("形参长度: " +arguments.callee.length);
          }
    }
    
  • 相关阅读:
    下载commons-fileupload-1.2.1.jar和commons-io-2.0.jar驱动包
    Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use. The server may
    jQury 入门 2 包装集
    JQuery 入门 1 ---定位
    JDBC连接mysql
    JSTL 的引入 JSTL包的下载
    mysql 的具体应用
    mysql 绿色版本的应用
    kong网关: service+route+upstream
    kong网关命令(一)
  • 原文地址:https://www.cnblogs.com/quan-quanquan/p/6689300.html
Copyright © 2011-2022 走看看