JavaScript中this的指向
首先应该知道,this在调用的时候才会指向具体的对象。
最后是谁调用的,this就指向谁。
先来看几个小例子。
function a(){ console.log(this); //Window } a()
var o = { a() { console.log(this); //{a: ƒ}即o对象 } } o.a()
var o = { a() { console.log(this); //Window } } var b = o.a; b();
这几个例子是很容易理解的,即在最后调用函数的时候,this的指向才会决定。
接下来看看this在构造函数中是怎么指向的吧。
情况1:直接调用构造函数,emmm这种情况跟上面函数是一样的吧就不说了。其实构造函数还是用new调用才有它存在的意义嘛。
情况2:使用new来创建对象的实例,这个时候this指向的是P对象啦。
function P() { this.name = 'xuxuya'; console.log(this); //P {name: "xuxuya"} } var b = new P();
情况3:当构造函数遇上了return。嘻嘻~来看看会怎样把
function P() { this.name = 'xuxuya'; return {name:'fefe'};// 当return的是任意引用类型的时候 } var b = new P(); console.log(b); //{name: 11} 返回的是对应的类型 console.log(b.name);//fefe 这个当然也会变化啦
function P() { this.name = 'xuxuya'; return 1;// 当return的是任意值类型的时候 } var b = new P(); console.log(b); //P {name: "xuxuya"} 返回的是构造函数中的对象。 console.log(b.name);//xuxuya

浙公网安备 33010602011771号