javascript中this的指向的疑惑

function a(){};


a.prototype.testThis = function() {

    console.log(a.prototype == this); // false

    console.log(a == this); // false

    console.log(b == this); // true

};


var b = new a();


b.testThis(); // 

按理说,prototype是一个对象,对象的this应该指向对象本身,也就是prototype,经过测试,它不指向a.prototype,也不指向a,而指向b。


交互式爱情
浏览 465回答 4
4回答

慕妹3146593

首先,new的时候,会将b的_proto_指向a的prototype,类似一个继承的过程(所以b.constructor==a)其次,this关键字是在执行时才有指向的东西,取决于执行到那一行的时候,执行对象是谁最后,b.testThis(),进入方法块儿后,this应当指向执行对象,b调用的该方法,this只能指向b,而不会指向其他的。a是b的构造方法,a.prototype是a的原型对象,只有b._proto_跟a.prototype有关系。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript