类

  • 类中的构造器不是必须要写的,要对实例进行一些初始化的操作,如在子类中添加指定属性时才写
  • 如果A类继承了B类,且A类中写了构造器,那么A类构造器中的super是必须要调用的,且必须在super之后才可以使用this
  • 类中所定义的方法,都放在了类的原型对象上,供实例去使用
//创建一个Person类
        class Person {
            //构造器方法
            constructor(name,age){
                //构造器中的this指向类的实例对象
                this.name = name
                this.age = age
            }
            //一般方法
            speak(){
                //speak方法放在 类的原型对象上,供实例使用 
                //通过Person实例调用speak时,speak中的this就是Person实例
                console.log(`我叫${this.name},我年龄是${this.age}`);
            }
        }

        //创建一个Student类,继承于Person类
        class Student extends Person {
      // 子类的构造器不是必写的 但是如果在子类中定义了子类特有的属性,就要写构造器,写了构造器,就一定要写super
            constructor(name,age,grade){
                super(name,age)
                this.grade = grade
                this.school = '哈哈'
            }
            //重写从父类继承过来的方法
            speak(){
                console.log(`我叫${this.name},我年龄是${this.age},我读的是${this.grade}年级`);
                this.study()
            }
            study(){
                //study方法放在了哪里?——类的原型对象上,供实例使用
                //通过Student实例调用study时,study中的this就是Student实例
                console.log('我很努力的学习');
            }
        }
        
        

对于明确的固定的,不需要传参进行赋值的变量,可以不通过构造器,直接赋值

class Car {
  constructor(name,price){
    this.name = name
    this.price = price
    // this.wheel = 4
  }
  //类中可以直接写赋值语句,如下代码的含义是:给Car的实例对象添加一个属性,名为a,值为1,wheel 为 4
  a = 1
  wheel = 4
  static demo = 100
}
const c1 = new Car('奔驰c63',199)
console.log(c1);
console.log(Car.demo);
截屏2021-07-17 下午11.07.17.png

链接: https://lxchuan12.gitee.io/js-extend/#%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0%E3%80%81%E5%8E%9F%E5%9E%8B%E5%AF%B9%E8%B1%A1%E5%92%8C%E5%AE%9E%E4%BE%8B%E4%B9%8B%E9%97%B4%E7%9A%84%E5%85%B3%E7%B3%BB

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容