【发布时间】:2015-08-09 19:31:42
【问题描述】:
我想知道 JavaScript ECMAScript 5 中是否有类?我读了一些文献,对此有不同的看法。我知道可以模拟类,但我不确定它们是否称为类。您是否也有一些证据?
这些类仅仅是伪类还是它的正确术语是什么?
【问题讨论】:
-
当你在 ES2015 (ES6) 中使用
class时,你并没有做任何你在 ES5 中做不到的事情——你只是在用更少的输入来完成它。所以答案是肯定的,ES2015 有类,ES5 也有类。 -
BI 知道可以重建类并模拟它们。但是它们真的已经是编程语言的一部分了吗?在 EMCA 官方网站上,它说“ECMAScript 不使用 C++、Smalltalk 或 Java 中的类。”。
-
ECMA 可能指的是基于原型而不是基于继承的 Javascript 类。
-
class只是 ES5 中常见模式的语法糖。它没有为语言添加任何新的语义,并且使用class关键字定义类在语义上与在 ES5 中通过创建原型然后向该原型添加方法等来定义类相同。 ES5 中的类和 ES2015 中的类是相同的,只是在 ES2015 中声明一个类需要更少的输入。 JavaScript 类不同于 Java 类,但 Java 类也不同于 C++ 类或 Smalltalk 类。 -
@Jordan,Java 类也不同于 C++ 类。您指的是泛型还是模板?因为在其他方面,Java 类与 C++ 类的相关性比 Javascript 类更多。
标签: javascript class ecmascript-5