注意:子类继承父类,当实例化子类时,会自动调用父类的构造函数;
父类构造函数中的this会指向子类的实例对象;
<script> var that; //定义一个全局变量 class People { constructor(n, a) { that = this; //把this赋值给全局变量 this.name = n; this.age = a; console.log(n, a); } chi() { console.log('chi'); } } var zhangsan = new People('张三', 58); //注意:子类继承父类,当实例化子类时,会自动调用父类的构造函数; //父类构造函数中的this会指向子类的实例对象; class Student extends People { } var lisi = new Student('李四', 20); console.log(lisi === that); //true </script>
如果子类显式的定义了constructor构造函数,需要(必须)调用一下super()函数,来调用父类的构造函数
<script> var that; //定义一个全局变量 class People { constructor(n, a) { that = this; //把this赋值给全局变量 this.name = n; this.age = a; console.log(n, a); } chi() { console.log('chi'); } } var zhangsan = new People('张三', 58); //如果子类显式的定义了constructor构造函数,必须调用一下super()函数,来调用父类的构造函数 //super()函数必须在使用this关键词之前调用 //super()可以给父类的构造函数传参 class Student extends People { constructor() { super('lisi', 50); //调用父类的构造函数,且把父类构造函数中的this指向子类的实例对象 this.scroe = 100; } } var lisi = new Student(); console.log(lisi); </script>
还没有评论,来说两句吧...