Как работи системата за прототипи в 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.