我是否总是需要 运行 一个像 javascript (ES5) 中的 class 一样工作的函数?

Do I always need to run a function that works like a class in javascript (ES5)?

我正在寻找 Typescript 的操场,看到这个 class 声明:

class Greeter {
   greeting: string;
   constructor(message: string) {
       this.greeting = message;
   }
   greet() {
       return "Hello, " + this.greeting;
   }
}

转换为此 ES5 代码:

var Greeter = (function () {
   function Greeter(message) {
       this.greeting = message;
   }
   Greeter.prototype.greet = function () {
       return "Hello, " + this.greeting;
   };
   return Greeter;
}());

在 EcmaScript5 中,我是否总是需要 运行 一个像 和 class 一样工作的函数?或者是因为 protoype.greet 在初始匿名函数中?

来自MDN

JavaScript classes introduced in ECMAScript 6 are syntactical sugar over JavaScript's existing prototype-based inheritance. The class syntax is not introducing a new object-oriented inheritance model to JavaScript. JavaScript classes provide a much simpler and clearer syntax to create objects and deal with inheritance.

是的。您总是需要 运行 一个像 class.

一样工作的函数