使用class
class Miaov{
constructor (a,b){ //构造对象的时候需要传递的对象
this.a=a;
this.b=b;
return this; //注意这里的return的值
}
print(){
console.log(this.a+this.b)
}
}
let mm=new Miaov(1,2);
mm.print(); //2
同时值得注意的是typeof Miaov 会返回function 所以class 只是一个语法糖
Miaov中的constructor方法是构造方法 this关键字代表的是实例对象 定义在class中的方法都是相当于定义在Miaov.prototype上边
与es5不同的是 es5中的构造函数可以直接调用 但是如果通过es6中的class声明的类不能直接调用
在class中定义的方法都需要return this 这样才可以进行链式调用
一个类必须有constructor 没有的话 class会使用一个空的构造函数(这个构造函数什么都不会做)
定义在类中的方法都是不可以被枚举的
class的继承 extends static super
在子类中的构造函数中必须先通过 super调用父类中的构造函数。值得注意的是与es5完全不同的是不能通过父类.call(this,参数)来实现 因为子类在没有调用父类的constructor之前实例是没有this的。
所以如果在子类的构造函数中需要使用this 必须先使用super() 来生成实例以后再使用this
super这个关键字不能在子类的其他方法中调用 除了子类的构造函数
当出现在其他非构造方法中的时候 指的是父类的原型对象 不能当做函数调用
子类会继承父类多有的方法(包括静态)
static 方法 就将这个方法指定为静态方法
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。