apply和call都可以改变this的指向
函数的调用,改变this的指向
本来f1函数是window对象的, 但是传入obj之后, f1函数此时就是obj对象的
//apply和call都可以改变this的指向 //函数的调用,改变this的指向 function f1(x, y) { console.log((x + y) + ":===>" + this); return "这是函数的返回值"; } //apply和call调用 var r1 = f1.apply(null, [1, 2]); console.log(r1); var r2 = f1.call(null, 1, 2); console.log(r2); console.log("=============>"); //改变this的指向 var obj = { sex: "男" }; //本来f1函数是window对象的,但是传入obj之后,f1函数此时就是obj对象的 var r3 = f1.apply(obj, [1, 2]); console.log(r3); // var r4 = f1.call(obj, 1, 2); console.log(r4);
![](https://img2018.cnblogs.com/i-beta/1844528/202001/1844528-20200108131224592-880268196.png)