首页 > Web开发 > 详细

javascript callee和caller

时间:2014-03-06 20:41:55      阅读:465      评论:0      收藏:0      [点我收藏+]

arguments的主要用途是保存参数,但是他还有callee属性.

一:callee指向arguments对象的函数.

示例一:

bubuko.com,布布扣
1 function calture(num) {//阶乘计算
2             if (num <= 1) return 1;
3             else {
4                 return num * calture(num - 1);
5             }
6         }
bubuko.com,布布扣

在代码内部出现了calture的调用.这在以后的代码维护中是很不利的,如果某天把外面函数名改了,里面没有改,后果大家知道了吧.

对于这个问题可以这个样子优化的嘛:

bubuko.com,布布扣
1 function calture(num) {//阶乘计算
2             if (num <= 1) return 1;
3             else {
4                 return num * arguments.callee(num - 1);
5             }
6         }
bubuko.com,布布扣

二:caller这个属性中保存着调用当前函数的函数引用,如果是全局作用域中调用,它的值是null.

bubuko.com,布布扣
1  function Me() {
2             You();
3         }
4function You() {
5             alert(You.caller);
6         }
7  Me();
bubuko.com,布布扣

效果:

bubuko.com,布布扣

对上面的代码经行优化一下:

bubuko.com,布布扣
1 function Me() {
2             You();
3         }
4  function You() {
5             alert(arguments.callee.caller); 
6     }
7 Me();
bubuko.com,布布扣

javascript callee和caller,布布扣,bubuko.com

javascript callee和caller

原文:http://www.cnblogs.com/guoyansi19900907/p/3584130.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!