修改this的指向_冘醉_前端开发者

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

var{
name:
,
fn:
function(a,b){
console.log(a
//3this//{name: “xuux”, fn: ƒ} }
}
vara.fn;
b.call(a,
//传入的参数要分别放入//ƒ (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);}
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);}

var{
name:
,
fn:
function(a,b){
console.log(a
//3this//{name: “xuux”, fn: ƒ} }
}
vara.fn;
b.apply(a,[
//传入的参数用数组存放//ƒ (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);
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);

var{
name:
,
fn:
function(a,b){
console.log(a
//3this//{name: “xuux”, fn: ƒ} }
}
vara.fn;
var//传入的参数按顺序赋值

 

» 本文来自:前端开发者 » 《修改this的指向_冘醉_前端开发者》
» 本文链接地址:https://www.rokub.com/73642.html
» 您也可以订阅本站:https://www.rokub.com
赞(0)
64K

评论 抢沙发

评论前必须登录!