首页 > 代码库 > Static关键字

Static关键字

<style>li.li1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } span.s1 { font: 10.0px Menlo } ul.ul1 { list-style-type: disc }</style>
  • The static keyword defines a static method for a class.
  • Static修饰的方法只能通过类名来调用,不能使用具体对象来调用,常用来做公用方法utitly
  • 同一个class下的不同静态方法可以通过this来互相调用, 非静态方法不能直接通过this来调用静态方法

  >class Person {

    static sayHello()

    {

      console.log(‘hello‘) ;

      this.sayWorld();

    }

    static sayWorld()

    {

      console.log(‘world‘)

    }

  }

<style>li.li1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } span.s1 { font: 10.0px Menlo } span.s2 { font: 12.0px "Helvetica Neue" } ul.ul1 { list-style-type: disc }</style>
  • 非静态方法可以通过类名来调用静态方法,或者通过this.constructor.staticMethod()来调用静态方法

  > class Person {

    constructor(){

      this.constructor.foo() ;

      Person.foo();

    }

    static foo()

    {

      console.log(‘helloworld‘)

    }

  }

  • 存在继承关系的两个类之间,方法的调用,通过super来显示的调父类里面的静态方法

  > class Parent {

    static sayHello()

    {

      console.log(‘parent say hello‘)

    }

  }

  > class Child extends Parent{

    static sayHello()

    {

      console.log(‘child say hello‘);

      super.sayHello() ;

    }

    static sayWorld()

    {

      console.log(‘child say world‘) ;

    }

    test()

    {

      console.log(‘child say test‘) ;

    }

  }

 

  Parent.sayHello() // parent say hello

  Child.sayHello() // child say hello , parent say hello

  Child.sayWorld() // child say world

  Child.test() // not a function

  new Child().sayHello() // not a function

  new Child().sayWorld() // not a function

<style>li.li1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } span.s1 { font: 10.0px Menlo } span.s2 { font: 12.0px "Helvetica Neue" } ul.ul1 { list-style-type: disc }</style> <style>li.li1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } span.s1 { font: 10.0px Menlo } span.s2 { font: 12.0px "Helvetica Neue" } ul.ul1 { list-style-type: disc }</style>

Static关键字