Ik las over de nieuwe JavaScript-achtige taal van Microsoft genaamd typoscript . In de speelplaats (voorbeeldsectie) , is er een eenvoudige klasse schrijfmachine syntax omgezet JavaScript code. Komend uit een Java-programmeertaal achtergrond, het was interessant voor mij om te leren hoe OOP wordt gedaan in JavaScript als samengesteld uit typoscript.
De getypte code:
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)
En het equivalent JavaScript-code:
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);
De Typescript deel is zeer vergelijkbaar met Java, dus ik dat begrijpen. Nu is mijn vraag is waarom in JavaScript het lichaam van de Greeterklasse is ingebed in een een anonieme function()oproep?
Waarom niet schrijven het zo?
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return Hello, + this.greeting;
};
Wat is het voordeel / nadeel van elke methode?













