1、这种可以不用实例化对象就能输出。
class Car{ constructor(){ } } Car.tool=4 console.log(Car.tool);//4
2、必须实例化后才能输出。但他们都是挂在类上的静态属性。
class Car{ constructor(){ Car.speed=0; } } console.log(Car.speed); //undefined; new Car(); console.log(Car.speed);//0
3、静态方法如果不是类表达式的话只有使用static声明。
是类表达式的话可以通过:
const Car1=class Car{ constructor(){ Car.a=function(){ console.log('我是一个静态方法'); } Car.b='我是一个静态属性!'; } static say(){ console.log('我也是一个静态方法1!'); } }
static不用实例化就可以输出;通过挂在类名上方法添加的必须实例化才行。