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

练习javascript继承遇到的一个问题

练习javascript继承遇到的一个问题

qq_T毛_0 2017-05-23 19:05:32
function SuperType(){    this.property = true;}SuperType.prototype.getSuperValue = function(){    return this.property;};function SubType(){    this.property = false;}//继承了 SuperTypeSubType.prototype = new SuperType();var instance = new SubType();alert(instance.getSuperValue());为什么值是flase不是true;最好有详细的解答,谢谢谢!!1
查看完整描述

4 回答

?
hahhhha

TA贡献50条经验 获得超32个赞

在子类SubType中已经找到了property属性。所以直接就打印出了false。

查看完整回答
反对 回复 2017-05-25
?
qq_药药_0

TA贡献52条经验 获得超27个赞

简单来说就是SubType()继承了SuperType()的属性方法,调用了instance.getSuperValue()会经历三个步骤1‘搜索实例

2’搜索SubType.prototype 3‘搜索SuperType.prototype。但是在第二个步骤就找出来了,所以是false

查看完整回答
反对 回复 2017-05-24
?
清风流光

TA贡献8条经验 获得超0个赞

虽然不懂原型链 但是上面的回答我是看懂了 就如 在css里 父类有一个color:red 子类也有color:blue 子类虽然继承了父类但也会优先读取自己的属性值 

查看完整回答
反对 回复 2017-05-24
?
精慕门9254224

TA贡献167条经验 获得超46个赞

子类继承了父类的方法,所以子类也拥有getSuperValue这个方法,它调用的这个方法就相当于调用自己的方法,方法中返回的属性,会先在自己的类中找,如果找到了就直接返回,如果找不到,再去父类中寻找。而本例中子类是有这个属性的,而且还有对应的值,当然就用自己的了!
查看完整回答
反对 回复 2017-05-23
  • 4 回答
  • 2 关注
  • 1678 浏览
慕课专栏
更多

添加回答

举报

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