JavaScript_04面向对象程序设计(原型【八】)深入解析原型继承的概念
程序员文章站
2022-06-15 13:45:52
...
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>New Web Project</title>
<script type="text/javascript" charset="UTF-8">
/**
* 我们都知道构造函数、原型和实列直接的关系,如果我们让原型对象等于另一个类型的实列,结果会怎么样呢?
* 显然此时的原型对象将包含一个指向另一个原型的指针,相应的另一个原型中也包含着指向另一个构造函数的指针。
*
* 原型链利用原型让一个引用类型继承另一个引用类型的属性和方法。
* 简单继承(原型继承)
* 类继承(模板继承或借用构造函数继承)
* 混合使用继承实现完整的继承。
*
*/
//js中采用原型链实现继承
//构造函数、原型对象、实列对象
//1.构造函数:prototype=原型对象
//2.原型对象.constructor=构造函数(模板)
//3.原型对象.isPrototypeOf(实列对象)判断实列对象的原型,是不是当前对象.
//4.构造函数 实列对象(类和实列)
//父类构造函数 sup
function Sup(name){
this.name=name;
}
//父类的原型对象
Sup.prototype={
constructor:Sup,
sayName:function(){
alert(this.name);
}
};
//子类构造函数sub
function Sub(age){
this.age=age;
}
//如果我们让原型对象等于另一个类型(父类)的实列,结果会怎么样?
//sub的实列对象和sup的原型对象有一个关系。
//Sub.prototype=new Sub();
Sub.prototype=new Sup();
alert(Sub.prototype.constructor);
var sub1=new Sub();
//alert(sub1.name);
sub1.sayName();
</script>;
</head>
<body>
<h1>New Web Project Page</h1>
</body>