美文网首页
14.arguments的callee问题和caller

14.arguments的callee问题和caller

作者: Sune小叶子 | 来源:发表于2018-02-16 16:44 被阅读0次

    function  test(){

        console.log(arguments.callee == test)      //true

    }

    arguments的callee函数指向函数本身的引用,例如在使用立即执行函数做初始化的时候,我们无法直接通过函数名来找到函数本身,那么我们可以用callee来找到函数本身.


    var init = (function(n){    

        if(n == 1){

        return 1;

        }

        return n * arguments.callee(n - 1);

    }(100));


    arguments本身只有callee和length属性

    function test(){

        arguments.callee     //test本身

        function demo(){

            arguments.callee     //demo本身

        }

    }


    caller不是arguments的属性,而是指向函数执行的那个环境

    function test(){

        function demo(){

                demo.caller        //指向它运行的环境,test

        }

    }

    test()


    在ES5的严格模式下 ,  "use  strict"下面caller和callee不允许使用


    相关文章

      网友评论

          本文标题:14.arguments的callee问题和caller

          本文链接:https://www.haomeiwen.com/subject/apsptftx.html