- Q:什么是类?
A:类是抽象的概念,类就是描述一类事物的模板 - Q:什么是对象
A:对象是 类 实例化出来的物体
// 创建一个类
class Person{
// 构造器
constructor (name,age){
// this指向类的实例对象本身
this.name = name;
this.age = age;
}
// 一般方法
speak(){
// 类里面的方法放在类的原型对象上,供实例使用
// Q:实例调用speak方法时this指向?A:实例本身
console.log(`我叫${this.name},年龄${this.age}`)
}
}
// 创建一个对象(类的实例化)
const p1 = new Person('Tom','20');
console.log(p1)
p1.speak()
图1
// 类的继承 extends
// 创建一个Student
class Student extends Person{
constructor (name,age,grade){
super(name,age)
this.grade = grade;
}
// 重写父类的方法(只能子类自己用,父类用不了)
speak(){
// 类里面的方法放在类的原型对象上,供实例使用
// Q:实例调用speak方法时this指向?A:实例本身
console.log(`我叫${this.name},年龄${this.age},读${this.grade }`)
}
// 子类原型上的方法,父类无法调用
study(){
console.log('学习')
}
}
// 创建一个学生对象
const s1 = new Student('小明','20','大二');
console.log(s1)
s1.speak()
s1.study()
图2
-----总结:-----
1. 类的构造器不是必须写的,要对实例进行一些初始化的操作,如添加指定属性时才写
2. 若B类继承了A类,那么B类中必须调用super方法
3. 类中定义的方法都是放在类的原型对象上的,供实例使用