zoukankan      html  css  js  c++  java
  • class类

    不需要实例化类,即可直接通过该类来调用的方法,即称之为“静态方法”。将类中的方法设为静态方法也很简单,在方法前加上static关键字即可。这样该方法就不会被实例继承!

    class Box{
        static a(){
            return "我是Box类中的,实例方法,无须实例化,可直接调用!"
        }
    }
    //通过类名直接调用
    console.log(Box.a());//我是Box类中的,实例方法,无须实例化,可直接调用!
    

    上面的代码一,类Box的a方法前有static关键字, 表明该方法是一个静态方法, 可以直接在Box类上调用。静态方法只能在静态方法中调用,不能在实例方法中调用。

    class Box{
        static a(){
            return "我只允许被静态方法调用哦!"
        }
        static b(){
            //通过静态方法b来调用静态方法a
            console.log(this.a());
        }
    }
    Box.b();//输出:我只允许被静态方法调用 哦
    

    通过实例方法来调静态方法会报错:

    class Box{
        static a(){
            return "我只允许被静态方法调用哦!"
        }
        b(){
            console.log(this.a());//TypeError: this.a is not a function
        }
    }
    var obj=new Box();
    obj.b();
    

    父类的静态方法, 可以被子类继承:

    class Box {
        static a() {//父类Box的静态方法
            return '我是父类的静态方法a';
        }
    }
    class Desk extends Box {}
    //子类Desk可以直接调用父类的静态方法a
    console.log(Desk.a()); 
    

    倘若想通过子类的静态方法调用父类的静态方法,需要从super对象上调用:

    class Box {
        static a() {
            return '我是通过super来调取出来的';
        }
    }
    class Desk extends Box {
        static a(){
            return super.a();
        }
    }
    console.log(Desk.a()); 
    
    静态属性

    静态属性指的是 Class 本身的属性, 即Class.propname, 而不是定义在实例对象( this) 上的属性。

    class Box{
       constructor(){
           this.name="实例属性"
       }
    }
    Box.prop1="静态属性1";
    Box.prop2="静态属性2";
    console.log(Box.prop1,Box.prop2);//静态属性1  静态属性2
    
  • 相关阅读:
    在Windows平台上安装Node.js及NPM模块管理
    MySQL远程访问授权
    JSON (仅限本地)
    Json 调用 天气API 实例
    JS调用腾讯接口获取天气
    jsonp 调用天气API
    兼容性
    MySql like模糊查询使用详解
    编绎报错,解决方法objc_msgSend too many arguments to function call,expected 0, have3 (转)
    OC中ARC forbids explicit message send of release错误(转)
  • 原文地址:https://www.cnblogs.com/ajaemp/p/12071738.html
Copyright © 2011-2022 走看看