es6中的类 和继承

es6中的类 和继承

class Person{
   static address = '地球';
   constructor(name,age){
       this.name = name;
       this.age = age;
       this.showAge = function(){
           console.log(111);
           console.log(this.name);
      }
  }
   showName = ()=>{
       console.log(this.name);
  }
   showName(){
       console.log(this.name);
  }
};
//如果不需要传值可以将 constructor省略掉如下
class Person{
  type="学生"
  showType = ()=>{
    console.log(this.type)
  }
}
const p1 = new Person('张三',33);
console.log(p1);
console.log(Person.address);
class Man extends Person{
   constructor(sex,name,age){
       super(name,age);
       this.sex = sex;
  }
};

Peson 为类

constructor 为这个类的构造函数,它里面的属性和方法 就是new 出来的对象的实例属性和方法一般情况下只在constructor 中写属性 ,方法一般写在 和constructor 同级且是挂载在原型上

需要注意的是:

和constructor 同级的方法 有两种写法

1.直接写 方法名(){},这种是挂载原型上的

2.方法名=()=>{}; 这种还是挂在实例身上 如果 constructor 中的方法名和这里的名字一样,会以constructor 中的方法为准

3.如果不需要传值可以将 constructor省略掉,但是有时需要初始化属性传参时就需要写上constructor ,这里可以进行传参

继承

需要用 extends关键字 来继承父类

需要注意的是 需要在子类的 constructor 中 写上super()关键字,这里的super就可以理解为调用父类的constructor ,所以里面会传一些和父类相同的参数,而且必须写在最前面

静态属性

用关键字 static 声明 如 static age=33;

通过过static 声明的静态属性和方法无法通过 实例来访问,且不能被继承

只能通过 类.静态属性名来访问

面向对象写法

posted @ 2022-05-23 22:27  Simon9527  阅读(83)  评论(0)    收藏  举报