हां, पहला वाला 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
पेश किया गया मुख्य रूप से मौजूदा प्रोटोटाइप-आधारित वंशानुक्रम मॉडल पर एक सिंथेटिक चीनी है।