zoukankan      html  css  js  c++  java
  • class类

    1.定义类

    class Person {  // class打头 定义一个类
      constructor(name,age,job){  // constructor 定义一个构造方法
        this.name = name;
        this.age = age;
        this.job = job;
        this.friend = ['Shelby','Court'];
      }
    
      sayName () {  // 声明一个方法
        console.log(this.name);
      }
    }
    
    let person = new Person('张三',26,'司机');
    person.sayName();

    注:ES6中没有方法的重载,即同名函数,后面会覆盖掉前面的。

    2.静态方法:(方法名前面加 static,可以用类名调用的方法,我们称之为静态方法)

    class Point {
      constructor(x,y){
        this.x = x;  // 在类里面,this.xxx = xxx 必须要放在构造方法中
        this.y = y;
      }
    
      static distance(a,b) { // 方法名前面加 static
        const dx = a.x - b.y;
        const dy = a.y - b.y;
        return Math.sqrt(dx*dx + dy*dy);  // sqrt 开平方
      }
    }
    
    let point1 = new Point(3,4);
    let point2 = new Point(18,24);
    let dis = Point.distance(point1,point2);  // 使用类名调用静态方法
    alert(dis);

    3.ES6明确规定,Class内部只有静态方法,没有静态属性,但可以用另外方式解决(将类视为一个对象,给对象加参数)

    class Foo {
    
    }
    
    Foo.prop =1; // 将类视为一个对象,给对象加参数
    
    Foo.prop // 1

    //-------单例模式 (有且只有一个)

    class Cache {
      static getInstance () {
        if(!Cache.instance){
          Cache.instance = new Cache();
        }
        return Cache.instance;
      } 
    }
    
    var cache = Cache.getInstance();

    实例:

    4.继承:

    class Animal {
      constructor(name){
        this.name = name;
      }
    
      speak() {
        console.log(this.name + 'makes a noise');
      }
    }
    
    class Dog extends Animal {  // 继承  只有单继承,没有多继承
    
      speak() {  // 重写speak
        console.log(this.name + 'barks');
      }
    
    }
    
    let dog = new Dog('旺财');
    dog.speak();
    
    // 狗barks
    // 如果Dog里没有speak,则 狗 makes a noise

    .

  • 相关阅读:
    pdf在线转换器
    抖音修复老照片动起来笑起来的程序app的下载地址
    FFmpeg.AutoGen Unable to load DLL 'avutil.56' 解决方法
    Array.prototype.fill 填充值被复用的问题
    Recoil Input 光标位置被重置到末尾的问题
    TypeScript 扩展全局 Window 时报错的解决
    Recoil 中默认值的正确处理
    Recoil 中多级数据联动及数据重置的合理做法
    Recoil 默认值及数据级联的使用
    Recoil 的使用
  • 原文地址:https://www.cnblogs.com/crazycode2/p/6675661.html
Copyright © 2011-2022 走看看