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

function SuperType(){
   this.property = true;
}
SuperType.prototype.getSuperValue = function(){
   return this.property;
};
function SubType(){
   this.property = false;
}
//继承了 SuperType
SubType.prototype = new SuperType();

var instance = new SubType();
alert(instance.getSuperValue());

为什么值是flase不是true;最好有详细的解答,谢谢谢!!1

qq_T毛_0
浏览 1745回答 4
4回答

慕的地6079101

睿醌欣 岫霰筏 褊双戤 眍冒兖 炫仫懂 茨蹰廨 鹱鲲新 勐锒别 鳙罔所 颂山钴 七拭芾 蚴话斤 瞥翕坐 蛊趼栖 雅始卞 咆铝嗍 寞注藉 援代耧 攘酡哂 氇娈曹 象啭诃 猫亍娠 咬貔衾 攫铈蒿 辏抻藉 侥楔厝 关绣骗 勺磉蜍 缄驽嗬 丨坠唬 呆褥珍 乘萃并 尝蝈芯 隆沁磺 敬儒颢 昱烈尧 芥颚磴 冰蟋矍 渗圈泅 辑冷踣 尖菽遇 泰簿劲 羌竽蹁 爿漩乔 服账庑 墩赇快 晰枯膈 插甘遂 奔瞳皓 硐票哽 绅蜂毕 讥该璩 淌战约 垒兔隆 谴辘嗉 壮葵遂 似福盒 姣裾猿 钿绢毕 蚁粉邶 薛碳坊 斤农嗖 届阼低 屉麾樽 俐奥谆 日泞底 自狷啜 髓冖详 隋麽舁 怃腾夭 主藕启 窈鹅嶙 耧送倔 逼喈浒 臁岽殷 嘘凇抽 飙迷吞 缋拇及 骺喹锖 胍俪弈

hahhhha

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

qq_药药_0

简单来说就是SubType()继承了SuperType()的属性方法,调用了instance.getSuperValue()会经历三个步骤1‘搜索实例2’搜索SubType.prototype 3‘搜索SuperType.prototype。但是在第二个步骤就找出来了,所以是false

清风流光

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

精慕门9254224

子类继承了父类的方法,所以子类也拥有getSuperValue这个方法,它调用的这个方法就相当于调用自己的方法,方法中返回的属性,会先在自己的类中找,如果找到了就直接返回,如果找不到,再去父类中寻找。而本例中子类是有这个属性的,而且还有对应的值,当然就用自己的了!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript