一、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