标签:targe turn 指定 必须 stat ati 表示 async 构造函数
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); } }
标签:targe turn 指定 必须 stat ati 表示 async 构造函数
原文地址:https://www.cnblogs.com/rickyctbu/p/10056455.html