Facciamo, per esempio, una classe Dog
:Perché la classe di wrapper TypeScript nella funzione anonima?
class Dog {
static food;
private static static_var = 123;
constructor(private name) {}
speak() {
console.log(this.name + ', I eat ' + Dog.food + ', ' + Dog.static_var);
}
}
Redatto a JS:
var Dog = (function() {
function Dog(name) {
this.name = name;
}
Dog.prototype.speak = function() {
console.log(this.name + ', I eat ' + Dog.food + ', ' + Dog.static_var);
};
Dog.static_var = 123;
return Dog;
})();
Questo funziona altrettanto bene ed è meno complicato:
function Dog(name) {
this.name = name;
}
Dog.prototype.speak = function() {
console.log(this.name + ', I eat ' + Dog.food + ', ' + Dog.static_var);
};
Dog.static_var = 123;
C'è qualche (diverso da "estetico") motivo per l'utilizzo del wrapper della funzione anonima?
'class' è un'espressione in dattiloscritto, non è vero? – Bergi
Mi aspetto che limiti l'ambito di ciò che è definito all'interno della classe. – bhspencer
sì, è per questo che l'ho etichettato come dattiloscritto. Bene, una parola chiave per essere esatta. – MightyPork