可以这样理解吗?

来源: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回答

好帮手慕星星

2019-07-04

你好,是可以这样理解的。

cT在原型上继承实例化的pT之后,覆盖的不仅仅是相同的name属性,是之前原型上定义所有内容,这部分理解正确了就没有问题。

祝学习愉快!

0

0 学习 · 14456 问题

查看课程