JavaScript 中的this
当函数被调用时,会创建一个活动记录(执行上下文)。该记录包含函数在哪里被调用(调用栈),调用的方式,及传入的参数。
this的绑定:
1、默认绑定时,this指向了全局对象。
function fun1(){
console.log(this.a);
}
var a=1;
fun1();//输出12、隐式绑定;当函数引用有上下文对象时,函数调用时this则绑定到这个上下文对象
function fun1(){
console.log(this.a);
}
var obj={
a:2,
fun1:fun1
}
obj.fun1();//输出2
注意:bar此时调用的时fun1函数本身,因此this默认绑定到全局对象
3、显式绑定;由call或者apply(或者bind)调用
function fun1(){
console.log(this.a);
}
var obj={
a:2,
fun1:fun1
}
fun1.call(obj);//输出2
4、new 绑定
function fun1(a){
this.a=a;
}
var b=new fun1(2);
console.log(b.a);//输出2