Am citit despre noul limbaj JavaScript-ca de la Microsoft numit masina de scris . In loc de joaca ( de exemplu secțiune) , există o simplă clasă în sintaxa dactilografiat convertit în cod JavaScript. Venind dintr - un mediu de programare Java, a fost interesant pentru mine să învețe cum OOP se face în JavaScript ca compilate din dactilografiate.
Codul typescript:
class Greeter {
greeting: string;
constructor (message: string) {
this.greeting = message;
}
greet() {
return Hello, + this.greeting;
}
}
var greeter = new Greeter(world);
var button = document.createElement('button')
button.innerText = Say Hello
button.onclick = function() {
alert(greeter.greet())
}
document.body.appendChild(button)
Și codul JavaScript echivalent:
var Greeter = (function () {
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return Hello, + this.greeting;
};
return Greeter;
})();
var greeter = new Greeter(world);
var button = document.createElement('button');
button.innerText = Say Hello;
button.onclick = function () {
alert(greeter.greet());
};
document.body.appendChild(button);
Partea typescript este foarte similar cu Java asa ca inteleg asta. Acum , întrebarea mea este motivul pentru care în JavaScript corpul Greeterclasei este încorporat într - un anonim function()apel?
De ce nu-l scrie așa?
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return Hello, + this.greeting;
};
Care este avantajul / dezavantajul fiecărei metode?













