Stavo leggendo sul nuovo linguaggio Javascript simile da Microsoft chiamato dattiloscritto . Nel parco giochi (sezione di esempio) , v'è una semplice classe nella sintassi dattiloscritto convertito in codice JavaScript. Venendo da una programmazione di fondo Java, è stato interessante per me per imparare OOP è fatto in JavaScript come compilato da dattiloscritto.
Il codice dattiloscritto:
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)
E il codice JavaScript equivalente:
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);
La parte tipografico è molto simile a Java così ho capito che. Ora la mia domanda è: perché in JavaScript corpo della Greeterclasse è incorporato in un un anonimo function()chiamata?
Perché non scrivere in questo modo?
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return Hello, + this.greeting;
};
Qual è il vantaggio / svantaggio di ciascun metodo?













