zoukankan      html  css  js  c++  java
  • ES6 语法学习(二)

    1、类的建立与继承

    constructor方法是类的构造函数是默认方法,通过new命令生成对象实例时,自动调用该方法。一个类必须有constructor方法,如果没有显式定义,一个默认的constructor方法会被添加。所以即使你没有添加构造函数,也是有默认的构造函数的。一般constructor方法默认返回实例对象this,但是也可以指定constructor方法返回一个全新的对象,让返回的实例对象不是该类的实例

    <script>
    //注意,在书写ES6的类的时候,方法与方法之间是不能添加逗号的。
    class Test {
        //constructor方法是类的构造函数是默认方法,通过new命令生成对象实例时,自动调用该方法。一个类必须有constructor方法,如果没有显式定义,一个默认的constructor方法会被添加。
        constructor(name, age) {
            //new.target 在类中返回的是test这个类,而不是实例化的类,可以通过new.target对静态方法的调用,在类里面也可以通过this.constructor对静态方法调用
            // console.log(new.target.say);
            //也可以判断是否是实例化后的实例
            console.log(this instanceof new.target);
            this.name = name;
            this.age = age;
        }
    
        //通过返回this实现链式调用
        asw() {
            console.log(`my name is ${this.name},my age is ${this.age}`);
            return this;
        }
    
        //静态方法前面要添加static进行修饰,同时里面的this表示test这个对象而不是实例化后的类
        //目前ES6未实现静态变量的定义,可以通过test.变量的形式进行定义
        static say() {
            console.log(this.other);
        }
    
        static other(name, age) {
            if (!(this instanceof Test)) {
                return new Test(name, age);
            }
        }
    }
    
    //在继类的时候用extends字实现子类对父类的继承
    class Person extends Test {
        constructor(name, age, sex) {
            //调用super关键字实现属性的继承
            super(name, age);
            this.sex = sex;
        }
    
        ask() {
            //通过super关键字调用父类的方法
            super.asw();
            console.log('are you ok???');
        }
    }
    
    //静态属性的调用
    Test.say();
    //利用静态方法实现类的实例化
    Test.other('ccc', 36).asw();
    // new Test('aaa', 30).asw();
    // new Person('bbb', 20).asw().ask();

     2、async...await的简单使用

    //实现自动调用
    (async function () {
        try {
            let m = await $.get('./url');
            console.log(m);
        } catch (err) {
            console.log(err);
        }
    })();
    
    //用函数的形式调用
    async function test() {
        try {
            let m = await $.get('./url');
            console.log(m);
        } catch (err) {
            console.log(err);
        }
    }
  • 相关阅读:
    with check option(视图 )
    @@ERROR
    事务处理
    含有自增序列的表中使用truncate与delete的不同结果
    Oracle中的通配符
    Java方法重载
    java递归方法
    Oracle中的for语句
    Uboot 2014.07 makefile分析
    linux内核目录结构
  • 原文地址:https://www.cnblogs.com/rickyctbu/p/10056455.html
Copyright © 2011-2022 走看看