Διάβαζα για το νέο Javascript για-όπως η γλώσσα από τη Microsoft που ονομάζεται γραφομηχανή . Στο παιδικής χαράς (παράδειγμα τμήμα) , υπάρχει μια απλή τάξη σε σύνταξη γραφομηχανή μετατρέπεται σε κώδικα JavaScript. Προερχόμενος από ένα υπόβαθρο προγραμματισμού Java, ήταν ενδιαφέρον για μένα να μάθουν πώς OOP γίνεται σε JavaScript όπως συντάχθηκε από γραφομηχανή.
Ο κωδικός γραφομηχανή:
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)
Και το ισοδύναμο κώδικα JavaScript:
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);
Το τμήμα γραφομηχανή είναι πολύ παρόμοια με Java, έτσι καταλαβαίνω αυτό. Τώρα η ερώτησή μου είναι γιατί το Javascript για το σώμα της Greeterκατηγορίας είναι ενσωματωμένο σε ένα ανώνυμο function()κλήση;
Γιατί να μην το γράψω, όπως αυτό;
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return Hello, + this.greeting;
};
Ποιο είναι το πλεονέκτημα / μειονέκτημα της κάθε μεθόδου;













