হ্যাঁ, প্রথমটিকে একটি static methodবলা হয় class method, এবং দ্বিতীয়টি হ'ল একটি instance method।
আরও বিস্তারিতভাবে বুঝতে, নিম্নলিখিত উদাহরণগুলি বিবেচনা করুন।
ES5 এ
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"
ES6 এ
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প্রবর্তিত হ'ল মূলত বিদ্যমান প্রোটোটাইপ-ভিত্তিক উত্তরাধিকারের মডেলটির চেয়ে একটি সিনট্যাকটিকাল চিনি।