static --- es6中类的静态方法

如果在一个方法前,加上static关键字,就表示该方法不会被实例继承,而是直接通过类来调用,这就称为“静态方法”

验证如下:

我们定义一个类,如下:

class Father{
            constructor(){

            }
            getX = function(){
                console.log(1);
            }
            static getY = function(){
                console.log(1);
            }
}
let f = new Father();
console.log(f);

实例f会继承Father类上的getX和getY
f的输出结果如下图:
在这里插入图片描述
而在getY方法前面添加static后,再次输出f显示如下:
在这里插入图片描述
结论:在类中的方法前面添加static,这个方法就不会被实例继承,这个方法只能通过类来调用

class Son extends Father{
            constructor(){
                super();
            }
}
console.log(Son .getX);
console.log(Son .getY);

创建子类Y继承父类X,输出结果如下:
在这里插入图片描述
结论:父类中添加了static的方法getY被子类继承了,且能被调用,而没有添加static的getX则无法调用

你可能感兴趣的:(JS)