阅读文章:【ES6】class
手写:
class myClass {
constructor(x, y) {
this.x = x;
this.y = y
}
toString () {}
toValue () {}
}
要点:
- class类似的是ES5中的prototype;
class B {}
let b = new B();
b.constructor
===B.prototype.constructor
=== B
- 与ES5不同的是,类的内部所有定义的方法,都是不可枚举的(non-enumerable):
Object.keys(myClass.prototype) // []
Object.getOwnPropertyNames()
方法返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。- 类的构造函数,不使用
new
是没法调用的,会报错。这是它跟普通构造函数的一个主要区别,后者不用new
也可以执行。