有什么东西只能通过经典/旧的原型方法来实现吗?
为什么我需要这个:想象一下我正在写一个没有旧东西的JS子集(原型而不是类,var等)
有几件事,包括但不限于:
function
表示法时,可以在没有new
的情况下调用构造函数。 class
符号禁止这一点。
作为旁注:在传统上使用MyParentClass.call(this)
(当MyParentClass
用class
定义时不允许)进行子类化时,你现在可以将class
语法与extends
和super
关键字结合起来。function
声明可以在使用后出现,因为它们被悬挂,class
声明不是。function
声明可以被新声明覆盖,class
声明无法重新定义先前的声明class
语法定义时。function
声明可以在“草率”模式(非严格)中进行,而class
方法总是以严格模式运行。因此,您不能在caller
表示法中使用方法/构造函数的callee
,arguments
或class
属性。当然,严格模式的所有其他后果也适用。在这里列出它们太过分了。prototype
属性(它是可写的)。使用class
时,prototype
属性不可写(注意,这并不意味着你不能改变它)。