迎接2012之JavaScript函数内部

一、arguments

累加的例子

【1】通常写法

 function leijia(number) {
            if (number <= 1) {
                return 1;
            } else {
            return number + leijia(number - 1);
            }
        }
【2】arguments.callee写法

 function leijia(number) {
            if (number <= 1) {
                return 1;
            } else {
            return number + arguments.callee(number - 1);
            }
        }
测试调式

        var tt = leijia;
        leijia = function () { return 0; };
        alert(tt(5));//按照【1】会弹出1,按照【2】会弹出15
二、apply和call

求和的例子

        function sum(sum1, sum2) {
            return sum1 + sum2;
        }
        function applysum1(num1, num2) {
            return sum.apply(this, arguments); //可以传入函数内部的arguments对象
        }
        function applysum2(num1, num2) {
            return sum.apply(this, [num1, num2]); //可以传入数组
        }
        function callsum(num1, num2) {
            return sum.call(this, num1, num2);//只能传入和参数对应的个数
        }
调试调式

        alert(applysum1(10, 10)); //弹出20
        alert(applysum2(10, 10)); //弹出20
        alert(callsum(10, 10)); //弹出20

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值