zoukankan      html  css  js  c++  java
  • caller和callee的区别

    ①、caller
        caller返回一个函数的引用,这个函数调用了当前的函数。
        使用这个属性要注意:
        1 这个属性只有当函数在执行时才有用
        2 如果在javascript程序中,函数是由顶层调用的,则返回null

        functionName.caller: functionName是当前正在执行的函数。
         例子1: 复制代码 代码如下:
        
           var a = function() { 
                alert(a.caller); 
              } 
        var b = function() { 
                  a(); 
              } 
              b();
              上面的代码中,b调用了a,那么a.caller返回的是b的引用,结果如下: 
                    
               例子2:返回NULL  
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <script type="text/javascript">
                var a = function(){
                    alert(a.caller);
                }
                a();
            </script>
        </head>
        <body>
        </body>
    </html>

    ②、callee

      callee返回正在执行的函数本身的引用,它是arguments的一个属性
      使用callee时要注意:
        1 这个属性只有在函数执行时才有效
        2 它有一个length属性,可以用来获得形参的个数,因此可以用来比较形参和实参个数是否一致,即比较arguments.length是否等于arguments.callee.length
        3 它可以用来递归匿名函数。

               例子1:返回函数本身的引用

        var a = function() {
              alert(arguments.callee);
            }
        var b = function() {
              a();
            }
            b();

               a在b中被调用,但是它返回了a本身的引用,结果如下:

        

        例子2:获取函数的形参

                    
     
    总结:caller是返回调用该函数的引用
             callee是返回本身自己的函数
              
    just do myself
  • 相关阅读:
    jQuery Ajax 全解析
    据说:2010年最佳Flash网站
    SWFKit 3.5 + 注册机
    几何算法
    不错的3d切换
    常见程式算法推演
    未知
    3d地形与道路
    在3D世界中创建不同的相机模式——创建一个第一人称射击游戏(FPS)的相机:Quake风格的相机
    在3D世界中创建不同的相机模式——天空盒
  • 原文地址:https://www.cnblogs.com/rookieCat/p/4664809.html
Copyright © 2011-2022 走看看