从功能上讲class更像是新引进的语法糖,而不是字面上理解的基于原型的新继承实现。
// 定义
class Greet {
// 构造函数
constructor (message) {
this.message = message;
}
greeting () {
console.log(this.message);
}
}
==== 代码说明 ====
* ES6中的class只包含方法,不包括属性
* constructor方法是class的默认方法,通过new命令生成实例时,会自动调用该方法
* 与ES5一样,类的所有实例共享一个原型对象
===== 类继承 =====
==== 示例 ====
<code>
class GreetWithName extends Greet {
constructor (message, name) {
super(message);
this.name = name;
}
greeting () {
console.log(this.message + " my name is " + this.name);
}
}
class Greet {
constructor (message) {
if (!(this instanceof Greet)) {
return new Greet(message);
}
this.message = message;
}
static describe () {
console.log("just is a greeting for you!")
}
}
Greet.describe();