欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

修改this的指向

程序员文章站 2022-04-21 16:41:02
call apply bind 返回的是一个修改后的函数。需要另外调用。 ......

call

var a={
    name:'xuux',
    fn:function(a,b){
        console.log(a+b);//3
        console.log(this);//{name: "xuux", fn: ƒ}
    }
}
var b=a.fn;
b.call(a,1,2);//传入的参数要分别放入
console.log(b);//ƒ (a,b){console.log(a+b); console.log(this);}

apply

var a={
    name:'xuux',
    fn:function(a,b){
        console.log(a+b);//3
        console.log(this);//{name: "xuux", fn: ƒ}
    }
}
var b=a.fn;
b.apply(a,[1,2]);//传入的参数用数组存放
console.log(b);//ƒ (a,b){console.log(a+b); console.log(this);}

bind  返回的是一个修改后的函数。需要另外调用。

var a={
    name:'xuux',
    fn:function(a,b){
        console.log(a+b);//3
        console.log(this);//{name: "xuux", fn: ƒ}
    }
}
var b=a.fn;
var c=b.bind(a,1);//传入的参数按顺序赋值
c(2);