var obj={
fn:function(){
console.log(this);//obj
var g=()=>{console.log(this)};//obj
(function(){console.log(this)})();//window
g();
},
team:{
g:()=>{
console.log(this)//window
}
}
}
obj.fn();
obj.team.g();
普通函数 匿名函数 箭头函数
下面是改变this
var a=1;
function er(a){
this.e=124
console.log(a+'er')//112
}
function qw(a){
this.b=21
console.log(a+'qw')
}
function as(a){
er.call(this,a)//(this指向对象,a,b)
qw.apply(this,[a])//(this指向对象,数组)
console.log(this.a)//12
};
var obj={
a:12
};
var g=as.bind(obj,112);//返回函数 (this指向对象,函数传参a,b)
g();