为了账号安全,请及时绑定邮箱和手机立即绑定

javascript中this的指向的疑惑

javascript中this的指向的疑惑

交互式爱情 2019-03-14 18:15:53
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。
查看完整描述

4 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

首先,new的时候,会将b的_proto_指向a的prototype,类似一个继承的过程(所以b.constructor==a)

其次,this关键字是在执行时才有指向的东西,取决于执行到那一行的时候,执行对象是谁

最后,b.testThis(),进入方法块儿后,this应当指向执行对象,b调用的该方法,this只能指向b,而不会指向其他的。a是b的构造方法,a.prototype是a的原型对象,只有b._proto_跟a.prototype有关系。


查看完整回答
反对 回复 2019-03-19
  • 4 回答
  • 0 关注
  • 464 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信