zoukankan      html  css  js  c++  java
  • ES6的学习-类 class

    定义类

    我们可以使用class关键字来声明一个类,或者使用类表达式来定义一个类,类表达式可以是被命名的或匿名的。

      // 声明一个类
      class Foo {
        constructor() {
          this.color = 'blue';
        }    
      }
      // 访问类
      let foo = new Foo();
      console.log(foo.color); // blue
    
      /*******************************************/
      //  定义一个类
      let MyFoo = class Foo {
        constructor() {
          this.color = 'blue';
        }
        sayColor() {
          console.log(this.color);
        } 
      }
      // 使用 new 来使用类
      let foo = new MyFoo();
      foo.sayColor(); // blue
    

    类声明和表达式都不会声明提升,这点和函数声明不同。类声明或定义之后,需要用new 来使用类。

    • constructor

    constructor方法是类默认的方法,如果显式没有定义,则会默认添加一个空的constructor方法,一个类只能有一个名为constructor的方法,该方法会默认返回实例对象this(包含自身属性和原型对象的属性方法);

      class Foo {
        constructor() {
          this.color = 'blue';
        }    
        sayColor() {
          console.log(this);
        }
      }
      let foo = new Foo();
      foo.sayColor();
    


    可以看出,this含有实例对象自身的属性和原型对象上的方法。

    • 静态方法

    static关键字用来定义一个类的静态方法,在静态方法中没有this值,调用静态方法也只能用类来直接调用。

      class Foo {
        static sayColor() {
          console.log('blue');
        } 
      }
      Foo.sayColor(); // blue
    
    • 使用extends继承父类

    extends关键字用于创建一个子类,来继承父类所有属性和方法。

      class Parent {
        constructor() {
          this.money = 100;
        }
        sayMoney() {
          console.log(this.money);
        } 
      }
      class Son extends Parent {
      }
      let son = new Son();
      son.sayMoney(); // 100
    

    子类中若要使用this关键字,则需要先在构造函数constructor()内部调用super(),否则会报错。

  • 相关阅读:
    udhcp源码详解(四) 之租赁IP的管理
    udhcp源码详解(四) 之租赁IP的管理
    udhcp源码详解(三) 下 之配置信息的读取
    udhcp源码详解(三)上 之配置信息的读取
    udhcp源码详解(二)--转
    udhcp详解源码(序)
    udhcp源码详解(一)之文件组织结构(dhcp server) --转
    UNIX网络编程学习(9)--getsockname和getpeername的用法及实例(转)
    php 函数
    git-命令
  • 原文地址:https://www.cnblogs.com/yangrenmu/p/7392415.html
Copyright © 2011-2022 走看看