Function函数
2、 apply(传递数组)、call(传递参数)改变作用域
// apply方法
function box(num1,num2){
return num1+num2;
}
function sum(num1,num2){
return box.apply(this,arguments);//arguments当作数组传值
}
alert(sum(10,10));
//call方法
1、arguments.callee函数
function sum(num){
if(num<1){
return 1
}else{
return num * arguments.callee(num-1); //arguments.callee调用自身,实现递归
}
}
alert(sum(5));
2、 apply(传递数组)、call(传递参数)改变作用域
// apply方法
function box(num1,num2){
return num1+num2;
}
function sum(num1,num2){
return box.apply(this,arguments);//arguments当作数组传值
}
alert(sum(10,10));
//call方法
function box(num1,num2){
return num1+num2;
}
function sum(num1,num2){
return box.call(this,num1,num2);//arguments当作数组传值
}
alert(sum(10,10));
// 用call实现对象冒充,降低方法和函数之间的耦合度
var color = "red";
var box = {
color : "bule"
}
function sayColor(){
alert(this.color);
}
// sayColor();
// sayColor.call(window);//全局
// sayColor.call(this);//全局
sayColor.call(box);//局部