每个函数对象会有一些方法可以去修改函数执行时里面的this,比较常见得到就是call和apply,通过call和apply可以重新定义函数的执行环境,即this的指向
}
var o ={a:1,b:3};
add.call(o,5,7); //1+3+5+7=16
//传参的时候是扁平的把每个参数传进去
add.apply(o,[10,20]); //1+3+10+20=34
//传参的时候是把参数作为一个数组传进去
//什么时候使用call或者apply
function bar(){
console.log(Object.prototype.toString.call(this));
// 用来调用一些无法直接调用的方法
}
bar.call(7); //"[object Number]"
function add(c,d){
console.log(this.a + this.b + c + d);}
var o ={a:1,b:3};
add.call(o,5,7); //1+3+5+7=16
//传参的时候是扁平的把每个参数传进去
add.apply(o,[10,20]); //1+3+10+20=34
//传参的时候是把参数作为一个数组传进去
//什么时候使用call或者apply
function bar(){
console.log(Object.prototype.toString.call(this));
// 用来调用一些无法直接调用的方法
}
bar.call(7); //"[object Number]"