从功能上讲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();