मैं कहा जाता है Microsoft से नए JavaScript जैसी भाषा के बारे में पढ़ रहा था टाइपप्रति । में खेल का मैदान (उदाहरण के अनुभाग) , वहाँ टाइपप्रति वाक्य रचना में एक साधारण वर्ग जावा स्क्रिप्ट कोड में बदला है। एक जावा प्रोग्रामिंग पृष्ठभूमि से आ रहा है, यह मुझे जानने के लिए के रूप में टाइपप्रति से संकलित कैसे OOP जावास्क्रिप्ट में किया जाता है दिलचस्प था।
टाइपप्रति कोड:
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)
और बराबर जावा स्क्रिप्ट कोड:
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);
टाइपप्रति हिस्सा तो मैं समझता हूँ कि बहुत जावा के समान है। अब मेरे सवाल क्यों जावास्क्रिप्ट में के शरीर है Greeterवर्ग एक एक अनाम में अंतर्निहित है function()कॉल?
क्यों नहीं इस तरह इसे लिखने?
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return Hello, + this.greeting;
};
प्रत्येक विधि का लाभ / नुकसान क्या है?













