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

    .

  • 相关阅读:
    编程时候底层函数的来源
    (转)线程相关的东东
    (转)CreateThread与_beginthread,内存泄漏为何因(原帖排版有些不好 ,所以我稍微整理下)
    测试CDockablePane。 测试他的最基本的功能。
    (转)单例模式(Singleton)的常见应用场景
    (转)http 之session和cookie
    Palindrome Linked List
    Basic Calculator II
    (转)外部排序
    (转)eclipse调试java程序的九个技巧
  • 原文地址:https://www.cnblogs.com/crazycode2/p/6675661.html
Copyright © 2011-2022 走看看