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

    .

  • 相关阅读:
    复利计算(修改后)
    复利计算测试(C语言)
    实验一、命令解释程序的编写
    《构建之法》之第一二三章读后感
    复利计算1.0 2.0 3.0
    复利计算总结
    Scrum 项目7.0——第一个Sprint的总结和读后感
    Scrum 项目7.0——第一个Sprint的演示和回顾
    Scrum 项目4.0&&5.0
    操作系统——进程调度模拟程序
  • 原文地址:https://www.cnblogs.com/crazycode2/p/6675661.html
Copyright © 2011-2022 走看看