16-1 静态方法

属于类所独有的
特点:通过类名去调用

  1. class Person{
  2. constructor(name,age){
  3. this.name=name;
  4. this.age=age;
  5. }
  6. static sayName(){
  7. console.log("name");
  8. }
  9. }
  10. var p=new Person("lisi",19)
  11. Person.sayName();

16-2静态方法和普通方法的调用

在普通方法中可以调用静态方法
在静态方法中不可以调用普通方法

  1. class Person{
  2. constructor(name,age){
  3. this.name=name;
  4. this.age=age;
  5. }
  6. //在普通方法中可以调用静态方法
  7. sayAge(){
  8. Person.sayName();//调用静态方法
  9. console.log(this.age);
  10. }
  11. //在静态方法中不可以调用普通方法
  12. static sayName(){
  13. console.log("name");
  14. }
  15. }
  16. var p=new Person("lisi",19)
  17. p.sayAge();

16-3静态方法中的this

静态方法中的this,指向调用静态方法的类

  1. class Person{
  2. constructor(name,age){
  3. this.name=name;
  4. this.age=age;
  5. }
  6. static sayName(){
  7. console.log(this);
  8. console.log("name");
  9. }
  10. }
  11. Person.sayName();

16-4静态方法的继承

静态方法可以被继承
子类可以继承父类的静态方法
在子类的静态方法中调用父类的静态方法,可以通过this/super调用

  1. class Person{
  2. static baseUrl="https://www.baidu.com"
  3. static sayName(){
  4. console.log("name");
  5. }
  6. }
  7. class Teacher extends Person{
  8. static sayAge(){
  9. super.sayName();
  10. // this.sayName();
  11. console.log(super.baseUrl);
  12. console.log("age");
  13. }
  14. }
  15. Teacher.sayName();//name
  16. console.log(Person.baseUrl);//https://www.baidu.com