JS高级---apply和call都可以改变this的指向

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);

猜你喜欢

转载自www.cnblogs.com/jane-panyiyun/p/12166072.html