react技术全家桶(23)es6的基础知识

类的知识:
class Person{
constructor (name,age){
//构造器中的this是谁 – 类的实例对象
this.name = name;
this.age =age;
}
//定义一般方法 没有function
speak(){
//speak在类的原型对象上 供实例使用
//通过Person实例调用speak时,speak中的this就是Person实例
console.log(我叫:${this.name},我的年龄:${this.age});
}
}
const p1 = new Person(‘tom’,18);//打印出来的对象中没有speak方法 speak在类的原型对象上 供实例使用
在这里插入图片描述
const p2 = new Person(‘jerry’,19);
console.log(p1);
console.log(p2);
p1.speak();
p2.speak();
p1.speak.call({a:1,b:2})
在这里插入图片描述
speak中的this就是Person实例 单独这句话是错的 要看怎么调用呢

继承:
//继承
class Studennt extends Person{
constructor (name,age,grade){
this.name = name;
this.age =age;
this.grade =grade;
}
在这里插入图片描述
报错必须调用父类的构造器。
正确的:
class Studennt extends Person{
constructor (name,age,grade){
super(name,age);//super必须在第一行
this.grade =grade;
}
}
//从写父类的方法
speak(){
console.log(我叫:${this.name},我的年龄:${this.age},我的年级:${this.grade});
}
}
const s1 = new Studennt(‘小张’,23,‘社会人’)
console.log(s1)
在这里插入图片描述
使用了父类的构造器 所以才会打印出数据

总结:
1.类中的构造器非必须写。对实例初始化的操作才会写 比如添加一些属性。
2.子类的的构造器中第一行必须调用父类的构造器
3.类中所定义的方法,都是放在了的原型对象上,供实例使用

你可能感兴趣的:(javascript,react.js,前端)