总结
ES6
的类让 JS
中的继承变得更简单,因此对于你已从其他语言学习到的类知识,你无须将其丢弃。ES6
的类起初是作为 ES5
传统继承模型的语法糖,但添加了许多特性来减少错误。
ES6
的类配合原型继承来工作,在类的原型上定义了非静态的方法,而静态的方法最终则被绑定在类构造器自身上。类的所有方法初始都是不可枚举的,这更契合了内置对象的行为,后者的方法默认情况下通常都不可枚举。此外,类构造器被调用时不能缺少 new,确保了不能意外地将类作为函数来调用。
基于类的继承允许你从另一个类、函数或表达式上派生新的类。这种能力意味着你可以调用一个函数来判断需要继承的正确基类,也允许你使用混入或其他不同的组合模式来创建一个新类。新的继承方式让继承内置对象(例如数组)也变为可能,并且其工作符合预期。
你可以在类构造器内部使用 new.target
,以便根据类如何被调用来做出不同的行为。最常用的就是创建一个抽象基类,直接实例化它会抛出错误,但它仍然允许被其他类所继承。
总之,类是 JS
的一项新特性,它提供了更简洁的语法与更好的功能,通过安全一致的方式来自定义一个对象类型。