हां, पहला वाला static methodभी कहा जाता है class method, जबकि दूसरा एक हैinstance method ।
निम्नलिखित उदाहरणों पर विचार करें, इसे और अधिक विस्तार से समझने के लिए।
ईएस 5 में
function Person(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
Person.isPerson = function(obj) {
return obj.constructor === Person;
}
Person.prototype.sayHi = function() {
return "Hi " + this.firstName;
}
उपरोक्त कोड में, isPersonएक स्थिर विधि है, जबकि sayHiएक उदाहरण विधि है Person।
नीचे, Personनिर्माता से ऑब्जेक्ट बनाने का तरीका बताया गया है ।
var aminu = new Person("Aminu", "Abubakar");
स्थैतिक विधि का उपयोग करना isPerson।
Person.isPerson(aminu); // will return true
उदाहरण विधि का उपयोग करना sayHi।
aminu.sayHi(); // will return "Hi Aminu"
ईएस 6 में
class Person {
constructor(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
static isPerson(obj) {
return obj.constructor === Person;
}
sayHi() {
return `Hi ${this.firstName}`;
}
}
देखें कि कैसे staticस्थैतिक विधि की घोषणा करने के लिए खोजशब्द का उपयोग किया गया था isPerson।
Personवर्ग की वस्तु बनाना ।
const aminu = new Person("Aminu", "Abubakar");
स्थैतिक विधि का उपयोग करना isPerson।
Person.isPerson(aminu); // will return true
उदाहरण विधि का उपयोग करना sayHi।
aminu.sayHi(); // will return "Hi Aminu"
नोट: दोनों उदाहरण अनिवार्य रूप से समान हैं, जावास्क्रिप्ट एक वर्गहीन भाषा बनी हुई है। ईएस 6 में classपेश किया गया मुख्य रूप से मौजूदा प्रोटोटाइप-आधारित वंशानुक्रम मॉडल पर एक सिंथेटिक चीनी है।