Я смотрел на игровую площадку Typescript и увидел это объявление класса:Должен ли я всегда запускать функцию, которая работает как класс в javascript (ES5)?
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 я всегда нужно запустить функцию, которая работает как класс? или это потому, что protoype.greet
находится внутри этой анонимной функции?
нет, но это хорошая идея, чтобы инкапсулировать объект-прототип, чтобы упростить его чтение, и вы можете иметь частное состояние и помощники, если они необходимы. – synthet1c
Нет. Вам вообще не нужно использовать IIFE, даже если вы играете с прототипом конструктора. – Redu