原型继承
javascript、java、c#------面向对象;但是javascript有些区别!
- 类:模板
- 对象:具体实例
在javascript中,需要大家转换一下思维方式!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
let Student = {
name:'学生',
age:18,
run:function () {
console.log(this.name + "run...");
}
};
let student1 = {
name:'小明'
};
let Bird = {
fly:function () {
console.log(this.name + "fly...");
}
};
// 小明的原型是 Student
student1.__proto__ = Student;
student1.__proto__ = Bird;
</script>
</body>
</html>
class集继承
class关键字,是在ES6引入的
1、定义一个类、属性、方法
// ES6 之后
// 定义一个学生类
class Student{
constructor(name) {
this.name = name;
}
hello(){
alert('hello');
}
}
2、继承
<script>
/* function Student(name) {
this.name = name;
}
// 给 Student 新增一个方法
Student.prototype.hello = function () {
alert('hello');
}*/
// ES6 之后
// 定义一个学生类
class Student{
constructor(name) {
this.name = name;
}
hello(){
alert('hello');
}
}
class Person extends Student{
constructor(grade) {
super(name);
this.grade = grade;
}
myGrade(){
alert('grade');
}
}
let student = new Student('张三');
let person = new Person('李四',100);
</script>