ES6 Class静态方法static

//在类型上定义的方法都在原型链上
  // 在类中定义方法前加上static关键字,该方法就是静态方法
        // 静态方法可以直接通过类来直接调用
        class Foo {
            //实例方法,定义在实例对象的原型上
            methodA() {
                console.log("methodA is called")
            }
            //静态方法,定义在Foo类型上面
            static methodB() {
                console.log("methodB is called")
            }

            static bar(){
                //静态方法中的this ,指向类(Foo)而不是实例 
                //Foo.baz()
                this.baz()
            }

            //静态方法和实例方法可以重名
            static baz(){
                console.log("static baz is called")
            }

            baz(){
                console.log("baz is called")
            }

        }

        let foo=new Foo()
        //实例方法必须通过实例对象调用
        foo.methodA()
        //静态方法不能通过实例对象调用
        //foo.methodB()
        
        //静态方法和实例对象无关
        Foo.methodB()

        Foo.bar()


        //父类的静态方法,可以被字类继承
        

posted @ 2021-02-27 08:20  abcdefgab  阅读(664)  评论(0)    收藏  举报