JavaScript 之 callee / caller

callee

首先说一下argument;

arguments 是类数组对象,是一种特殊的对象,里面装有函数的实参列表,它的属性名是按照传入参数的序列来的

大家都知道,对象都会有属性,那么callee 就是 arguments 的一个属性。

arguments.callee 指的是函数的引用(也就是函数自己)。

//eg:   
function test(){
            console.log(arguments.callee);
        }
        test();

结果:


    // 计算100!
                 var num = (function (n){
                     if(n == 1){
                         return 1;
                     }
                     return n*arguments.callee(n-1);
                 }(100))
        // 立即执行函数一般没有函数名,(因为执行后立即销毁,有函数名也没啥用)
        // 所以要想调用出原型必须的用 arguments.callee

caller

caller是函数的属性。它指向函数所调用的环境。

  function test(){
            demo();
        }
        function demo(){
            console.log(demo.caller);
        }
        test();

打印结果:



在es5.0 的标准模式下不能用callee 和 caller

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值