Jeg leste om den nye Javascript-lignende språk fra Microsoft kalt Loggfila . I lekeplass (eksempel avsnitt) , er det en enkel klasse i Loggfila syntaks konvertert til Javascript-kode. Kommer fra en Java-programmering bakgrunn, var det interessant for meg å lære hvordan OOP gjøres i Javascript som samlet fra Loggfila.
Loggfila kode:
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)
Og tilsvarende Javascript-kode:
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);
Loggfila delen er veldig lik Java slik jeg forstår det. Nå er spørsmålet mitt er hvorfor i Javascript kroppen av Greeterklassen er innebygd i en en anonym function()samtale?
Hvorfor ikke skrive det slik?
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return Hello, + this.greeting;
};
Hva er fordelen / ulempen med hver metode?













