js class理解

类出现让js更好的面向对象开发能更加语义化的实现类的继承

实际上:底层依旧是通过原型和原型链实现继承

类的基本使用(类不会变量提升)

  class Person{
    constructor(name){
      this.name = name
    }
  }
  let p1 = new Person('小明')

类的继承

  class child extends Person{
     constructor(name){
      super(name)
    }
  }

类的静态方法、属性(只能由类本身调,构造函数无法调,能继承)

  class Person{
      static age = 18
      constructor(name){
        this.name = name
      }
      static run(){
        console.log('这是静态方法只有类能调')
      }
  }
  let p1 = new Person('小明')
  p1.age//读取不到

类的私有方法、变量(只能类内部调用)

 class Person{
      #friend = '小红' 
      constructor(name){
        this.name = name
      }
      #play(){
        console.log('这是类的私有方法',this.#friend)
      }
      use(){
        this.#play()
      }
 }
 let p1 = new Person('小明')
 p1.#friend//报错
 p1.#play//报错
 p1.use()//这是类的私有方法,小红

你可能感兴趣的:(js class理解)