调用属性caller和callee的区别

文章结束给大家来个序程员笑话:[M]

    

caller

    caller返回一个函数的引用,这个函数调用了以后的函数。

    用使这个性属要注意:

    1 这个性属只有当函数在行执时才用有

    2 如果在javascript序程中,函数是由顶层调用的,则返回null

    functionName.caller: functionName是以后正在行执的函数。

var a = function() {
                    alert(a.caller);
                }
                var b = function() {
                    a();
                }
                b();
下面的代码中,b调用了a,那么a.caller返回的是b的引用,结果如下:

    调用和属性

    如果直接调用a(即a在任何函数中被调用,也就是顶层调用),返回null:

var a = function() {
                    alert(a.caller);
                }
            var b = function() {
                a();
            }
            //b();
            a();
    每日一道理
感叹人生,是因为曾经没有过轰轰烈烈的壮举,觉得渺小,觉得平庸,似乎生活过于简单,简单得让人感觉烦躁。没有大言不惭地说过将来,只是较比现实地握住了现在,我想,这是一条路,每个人所必须踏上的一次旅程,曾经看到过这样一句话:成长的过程漫长却充实,自毁的过程短暂却留下一生痛苦,人生可以说是一次考验,何去何从取决于自我。
输出结果:

    调用和属性

    

callee

    callee放回正在行执的函数本身的引用,它是arguments的一个性属

    用使callee时要注意:

    1 这个性属只有在函数行执时才有效

    2 它有一个length性属,可以用来取得形参的个数,因此可以用来较比形参和实参个数是不是分歧,即较比arguments.length是不是于等arguments.callee.length

    3 它可以用来递归名匿函数。

 var a = function() {
                alert(arguments.callee);
            }
            var b = function() {
                a();
            }
            b();
a在b中被调用,但是它返回了a本身的引用,结果如下:

    调用和属性

 

文章结束给大家分享下程序员的一些笑话语录: 程序员喝酒
  我偶尔采用“木马策略”、“交叉测试”,时间不长就开始“频繁分配释放资源”,“cache”也是免不了的了,
  不过我从不搞“轮巡”,也不会“捕获异常”,更不会“程序异常”,因为我有理性
克制的。  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值