修改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);
下一篇: 感谢领导栽培