类与实例
- 类的声明
- 生成实例
类与继承
- 如何实现继承
- 继承的几种方式
以下三种方式都是完美继承
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
function Parent1() {
this.name = 'Parent1'
this.play = [1, 2, 3]
}
function Child1() {
Parent1.call(this) //this = Child1.prototype
this.type = 'Child1'
}
Child1.prototype.__proto__ = Parent1.prototype;
S1 = new Child1;
console.log(S1 instanceof Child1, S1 instanceof Parent1);
console.log(S1)
console.log(S1.constructor)
console.log(S1.__proto__.__proto__.constructor)
//----------------------------------------------------------
function Parent2() {
this.name = 'Parent2'
this.play = [1, 2, 3]
}
function Child2() {
Parent2.call(this)
this.type = 'Child2'
}
Child2.prototype = Object.create(Parent2.prototype)
Child2.prototype.constructor = Child2;
var S2 = new Child2();
console.log(S2)
console.log(S2.constructor)
console.log(S2.__proto__.__proto__.constructor)
//----------------------------------------
class Parent3{
constructor(){
this.name = 'Parent3'
this.play = [1, 2, 3]
}
}
class child3 extends Parent3{
constructor(){
super()
this.type = 'Child3'
}
}
var S3 = new child3;
console.log(S3)
console.log(S2.constructor)
console.log(S2.__proto__.__proto__.constructor)
console.log(S1,S2,S3)
</script>
</body>
</html>