在大多数编程语言中,Math 不是一个类。但为了比较 JavaScript 和 Java,我们可以假设 Math 是一个类。在 Java 中,Math 是一个静态类,不能被实例化。new Math 没有意义。在 JavaScript 中,类只是一个用于通过 new 运算符调用的函数,而不存在静态类的概念。既然 Math 不设计实例化且不能被当作函数调用,那么没有理由将它定义成函数(或者类)。它只是一个用于收集一堆属性的东西......这正好是 JavaScript 中对象的基本定义。
Math.PI
和new Math().PI
。由于 class 需要后者,我怀疑从客户端的角度来看没有任何单一的好处。对于运行时也没有任何好处。 - Wiktor Zychlanew
关键字。 - HITMANclass
关键字之前(技术上仍然是一个函数),对于大多数人来说,类意味着使用new
调用的构造函数。一旦引入静态属性,它就只是一个(对象*(尽管技术上它可以是一个函数)。 - Wiktor Zychla