Es6中class类的初步概念

187 阅读1分钟

概述

  • 在Es6中,class(类)作为对象的模板被引入,可以通过class关键字定义类。class的本质是function。它可以看做是一个语法糖让对象原型的写法更清晰,更向面向对象的语法
  • 如果类中的属性使用static修饰是挂载在类上,可以通过类名直接调用,this也会直接指向类,如果没有使用static修饰,则需要通过new一个实列对象,实列对象调用属性或者方法,this指向还是指向实列对象
   class fn {
        constructor() {
            console.log('构造函数');
        }
        //静态属性,挂载在类上面
         static a = 1000
         static fn = () => {
        //     //this指向的是当前的类
             console.log(this.a);
             console.log('这是类的方法');
         }
        //在不使用static修饰时挂载在原型对象上
         student = 2000
         teacher = 100
        fn = () => {
             //this指向的是heima实例对象
             console.log(this.student);
             console.log('这是实例的方法');
         }
    }

     const heima = new fn()//new的时候会调用constructor中的方法
     console.log(heima); //fn {student: 2000, teacher: 100}
     console.log(heima.student);//2000 实列对象调用
     console.log(fn.a);//类调用
     fn.fn() //类调用
     heima.fn()//实列对象调用