Я играл с TypeScript и заметил, что он следует определенному стилю с JS.
Следующий TypeScript:
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
Генерирует JS следующим образом:
var Greeter = (function () {
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return "Hello, " + this.greeting;
};
return Greeter;
})();
В чем преимущество IIFE? Зачем мне привязывать свои методы к моему прототипу в новой области видимости?
Потеряю ли я что-нибудь, если продолжу делать:
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return "Hello, " + this.greeting;
};
(как я всегда делал) вместо этого?