zoukankan      html  css  js  c++  java
  • ES6中class详解


    class 类名{
    属性;
    方法;
    // 构造方法,实例化类的时候,自动调用
    constructor(){

    }
    }

    1.类要实例化,才能调用普通方法
    class A {
          name = 'zs';
          age = 18;
          say() {
            console.log('一和你聊天,我就成了别人眼中的傻子!');
          }
        }
        // 类要实例化,才能调用普通方法
        let a = new A;
        //  console.log(a);
        a.say(); // 一和你聊天,我就成了别人眼中的傻子!
        console.log(a.name); //zs

    2. 构造方法的使用

        // 构造方法的使用
        class B {
          name = 'ls';
    
          // new的时候自动调用
          constructor() {
            console.log(this.name);
    
          }
        }
    
        new B;

    3. 给对象中属性赋值,类中的this指向实例化之后的对象

    // 给对象中属性赋值
        // 类中的this指向实例化之后的对象
        class C {
          constructor(name, age) {
            this.name = name;
            this.age = age;
            // 在构造方法中,直接调用其他方法
            this.say();
          }
          say() {
            console.log(this);
            console.log(this.name);
          }
        }
    
       let c = new C('zs', 18);
        c.say();

    4. class的继承

    class A {
          name = '他爸';
          say() {
            console.log(this.name + '说:我给你换个妈!');
    
          }
        }
    
        // B类继承了A类
        class B extends A {
          age = 18;
        }
    
         var b = new B;
         console.log(b.name);
         b.say()
    
        class C {
          name = 'zs';
          age = 18;
          constructor(age) {
            this.age = age
    
            console.log(age);
    
          }
        }
    
        class D extends C {
          constructor(info, age) {
            // 当子类,父类都有构造方法,需要使用super,调用父类的构造方法
            super(age);
            this.info = info;
            console.log(this.info);
    
          }
        }
    
        new D('嘿嘿', 22);

    5.静态属性和方法

    /*
          静态关键字  static
          被static修饰的方法和属性,只属于类本身
          只能使用类名进行调用
        
        */
    
        class Goods {
          static name = '小姐姐';
          age = 18;
          constructor() {
            // 静态属性和方法的调用,只能用类名,不能使用this
            // console.log(Goods.name);
            //Goods.info();
    
            // 静态方法
            // Goods.demo.bind(this)();
            // call() 改变this指向,直接调用
            Goods.demo.call(this)
          }
          say() {
            console.log('小姐姐,你知道我为什么单身吗?');
          }
    
          // 静态方法中,this指向当前的类
    
          static info() {
            console.log('因为还没有向你告白!');
            console.log(this);
          }
    
          static demo() {
            console.log(this.age);
          }
        }
    
        let g = new Goods;
        // g.say();
        // g.info();
        // Goods.info();
  • 相关阅读:
    JDK6和JDK7中的substring()方法
    考试结束
    今天之总结
    暂别
    珍惜
    放弃
    我男神
    心态
    稳住,我或许能赢
    还是做好自己吧
  • 原文地址:https://www.cnblogs.com/MoonASixpence/p/14757396.html
Copyright © 2011-2022 走看看