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-ში ობიექტზე ორიენტირებულ პროგრამირებაში საფუძველია.