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

    .

  • 相关阅读:
    【转载】Gradle学习 第八章:依赖管理基础
    【转载】Gradle学习 第七章:Java快速入门
    【转载】Gradle学习 第六章:构建脚本基础
    【转载】Gradle学习 第四章:安装Gradle
    【转载】Gradle学习 第三章:教程
    【转载】Gradle学习 第二章:概述
    【转载】Gradle学习 第一章:引言
    android studio学习----偏好设置
    android studio学习----创建模拟器
    前端生成二维码
  • 原文地址:https://www.cnblogs.com/crazycode2/p/6675661.html
Copyright © 2011-2022 走看看