首先:
1.类中的构造器不是必须写的,要对实例进行一些初始化的操作,如添加指定属性时才写;
2.如果A类继承了B类,且A类中写了构造器,那么A类构造器中的super是必须要调用的。
3.类中所定义的方法都是放在了类的原型对象上,且供实例去使用
代码展示:
<script type="text/javascript">
//创建一个Person类
class Person{
//构造器方法
constructor(name,age){
//构造器中的this指定类的实例对象
this.name=name
this.age=age
}
//一般方法
speak(){
// speak放在了类的原型对象上,供实例使用
console.log(`我是${this.name},今年${this.age}了`);
}
}
class Dog extends Person{
constructor(name,age,grade){
super(name,age)
this.grade=grade
}
//重写从父类继承的方法
speak(){
console.log(`我是${this.name},今年${this.age}了,学历${this.grade}`);
}
}
const p1=new Dog('张三',34,'高一')
p1.speak()
console.log(p1);
// p1.speak.call({a:1,b:2})
// console.log(p1.__proto__===Person.prototype);
</script>