可以这样理解吗?
来源:6-3 选择练习
为你浅笑
2019-07-04 03:14:15
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>5-4</title>
</head>
<body>
<script>
function pT(){
this.say=function(){
alert("11");
}
}
pT.prototype.play=function(){
alert("22");
}
pT.prototype.name="haha";
pT.prototype.eat=function(){
alert("33")
}
function cT(){
this.eat=function(){
alert("44");
}
}
cT.prototype.name="lala";
cT.prototype=new pT(); //将cT()的原型指向实例化后的pT
var p=new cT(); //实例化cT()
p.say();//弹出11 继承的pT的属性
p.play();//弹出22 继承的pT的属性
p.eat();//弹出44 this为私有属性,优先级高于prototype原型属性
alert(p.name);//弹出haha 由于name指向的都是其原型,而且因为代码执行顺序的原因 后面的实例化把前面的自定义覆盖了
</script>
</body>
</html>
1回答
你好,是可以这样理解的。
cT在原型上继承实例化的pT之后,覆盖的不仅仅是相同的name属性,是之前原型上定义所有内容,这部分理解正确了就没有问题。
祝学习愉快!
相似问题