理解javascript中arguments,callee,caller

本文深入探讨了javascript中的arguments、callee和caller三个关键概念,解释了它们的用途和区别,通过示例展示了如何在函数内部使用这些属性进行递归调用和函数封装,强调了callee属性在验证函数参数长度时的实用性。

参考链接:理解javascript中arguments,callee,caller 

<script>
   function Sing()
    {
       	 document.write("<br>"+arguments.callee);
           with(arguments.callee)
           document.write("<br>"+author + ":" + poem);
		   // document.write("<br>"+this.author + ":" + this.poem);//undefined
    };
    Sing.author = "李白";
    Sing.poem = "汉家秦地月,流影照明妃。一上玉关道,天涯去不归";
    Sing();
    Sing.author = "李战";
    Sing.poem = "日出汉家天,月落阴山前。女儿琵琶怨,已唱三千年";
    Sing();
</script>


资料上说 callee 返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。 callee 属性是 arguments 对象的一个成员,它表示对函数对象本身的引用,这有利于匿名 函数的递归或者保证函数的封装性,例如下边示例的递归计算1到n的自然数之和。而该属性 仅当相关函数正在执行时才可用。还有需要注意的是callee拥有length属性,这个属性有时候 用于验证还是比较好的。arguments.length是实参长度,arguments.callee.length是 形参长度,由此可以判断调用时形参长度是否和实参长度一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值