javaScript14-面向对象原型继承和class继承
什么是面向对象
-
javaScript,java,c#,……
类:模板
对象:具体的实例
-
但是javaScript有点区别!
原型继承
<script>
//原型对象
var student={
name: 'kaka',
age: 3,
run: function (){
console.log(this.name+"在run")
}
};
var xiaoming={
name: '小明'
};
//小明的原型是student,相当于继承
xiaoming.__proto__=student;
</script>
class继承
class关键字是在ES6引入的
<script>
//定义一个学生的类
class student{
constructor(name) {
this.name=name;
}
hello(){
alert('hello');
}
}
class pupil extends student{
constructor(name,grade) {
super(name);
this.grade=grade;
}
myGrade(){
alert('我是一名小学生');
}
}
var xiaoming=new student("小明");
var kaka=new student("卡卡");
var xiaohong=new pupil('小红',5);
</script>
class继承其本质还是原型继承,只不过写法变了,更加规范了
原型链
- Java叫继承,JavaScript叫原型链
- 无论怎么继承,最终始终指向object,然后又指回来。

浙公网安备 33010602011771号