Sobes.tech
Middle

Ինչպես է աշխատում JavaScript-ում պրոտոտիպների համակարգը?

sobes.tech AI

Պատասխան AI-ից

JavaScript-ում պրոտոտիպների համակարգը ժառանգության մեխանիզմ է, որի ժամանակ օբյեկտները կարող են ժառանգել հատկություններ և մեթոդներ այլ օբյեկտներից:

Յուրաքանչյուր օբյեկտ ունի ներքին [[Prototype]] հատկություն (մասին հասանելի է __proto__ կամ Object.getPrototypeOf-ի միջոցով), որը ցույց է տալիս մյուս օբյեկտին՝ պրոտոտիպին: Եթե օբյեկտի հատկությանը հասնելիս այն չի գտնվում, որոնումը շարունակվում է պրոտոտիպում, ապա պրոտոտիպի պրոտոտիպում և այդպես շարունակ, մինչև հասնել null-ին:

Այսպիսով, պրոտոտիպների շղթաներ ստեղծելու և ժառանգությունը իրականացնել առանց դասերի (համաձայն որ ժամանակակից JS տարբերակներում կա դասերի սինտաքսիս, որը ներքո օգտագործում է պրոտոտիպներ):

Օրինակ՝

const կենդանի = {
  speak() {
    console.log('Կենդանին խոսում է');
  }
};

const շուն = Object.create(կենդանի);
շուն.bark = function() {
  console.log('Հա!');
};

շուն.bark();    // Հա!
շուն.speak();   // Կենդանին խոսում է (ժառանգված է կենդանից)

Այսպիսով, պրոտոտիպները թույլ են տալիս օբյեկտներին կիսել վարքագիծը և հատկությունները, ինչը հիմքն է JavaScript-ում օբյեկտային ծրագրավորման համար: