JavaScript-də prototiplər nədir?
sobes.tech Süni İntellekt
AI-dan cavab
JavaScript-də obyektlər digər obyektlərdən prototip mexanizmi vasitəsilə xüsusiyyətlər və metodlar irsi ala bilər. Hər bir JavaScript obyekti daxili gizli [[Prototype]] xüsusiyyətinə malikdir, hansı ki, onun prototipinə işarə edir. Obyektin xüsusiyyəti və ya metoduna müraciət edildikdə, JavaScript mühərriki əvvəlcə onu obyektin özündə axtarır. Əgər tapmazsa, [[Prototype]] xüsusiyyətinə baxır və prototipdə axtarır. Bu proses prototip zənciri boyunca təkrarlanır, xüsusiyyət tapılana və ya null-a çatana qədər (zəncirin sonu).
Əsas anlayışlar:
- Prototip zənciri:
[[Prototype]]xüsusiyyəti ilə əlaqələndirilmiş obyektlərin ardıcıllığı. - İrsiyyət: Obyektlər, prototiplərinin xüsusiyyətlərini və metodlarını irsi alır.
__proto__: Tarixi olaraq istifadə olunan (həm də standartlaşdırılmamış)[[Prototype]]-a giriş üçün xüsusiyyət. İndiki vaxtdaObject.getPrototypeOf()istifadə etmək tövsiyə olunur.prototype: Bu konstruktorun xüsusiyyəti,[[Prototype]]-a istinad edir və bu prototipdən yaradılan nümunələr tərəfindən istifadə olunur.
Konstruktor və prototip nümunəsi:
// Konstruktor
function Person(name, age) {
this.name = name;
this.age = age;
}
// Prototipə metod əlavə et
Person.prototype.sayHello = function() {
console.log("Salam, mənim adım " + this.name);
};
// Nümunə yaradın
const person1 = new Person("Alice", 30);
// Prototip metodunu çağırın
person1.sayHello(); // Nəticə: Salam, mənim adım Alice
// Nümunənin prototipinə giriş
console.log(Object.getPrototypeOf(person1) === Person.prototype); // Nəticə: true
Bu nümunədə:
Personkonstruktor funksiyasıdır.Person.prototypebütünnew Person()ilə yaradılan nümunələr üçün prototip kimi xidmət edən obyekt.sayHelloprototipə əlavə olunmuş metoddur. BütünPersonnümunələri bu metodu irsi alır.person1.sayHello()çağırıldıqda, JavaScript mühərrikisayHello-yuperson1-də axtarır. Əgər tapmazsa,[[Prototype]]-a (yəniPerson.prototype) müraciət edir və metodu orada tapır.
Prototiplər yaddaşdan səmərəli istifadəni təmin edir, çünki ümumi metodlar və xüsusiyyətlər prototipdə saxlanılır və hər obyekt nümunəsində təkrarlanmır.