Middle
Kaip veikia prototipų sistema JavaScript'e?
sobes.tech AI
Atsakymas iš AI
JavaScript sistemo prototipai yra paveldėjimo mechanizmas, kuriame objektai gali paveldėti savybes ir metodus iš kitų objektų.
Kiekvienas objektas turi vidinę savybę [[Prototype]] (pasiekiamą per __proto__ arba Object.getPrototypeOf), kuri nurodo į kitą objektą — prototipą. Jei prieigos metu savybė nerandama objekte, paieška tęsiasi prototipe, tada prototipo prototipe ir taip toliau, kol pasiekiamas null.
Tai leidžia kurti prototipų grandines ir įgyvendinti paveldėjimą be klasių (nors šiuolaikinėse JS versijose yra klasių sintaksė, kuri naudoja prototipus po kapotu).
Pavyzdys:
const gyvūnas = {
speak() {
console.log('Gyvūnas kalba');
}
};
const šuo = Object.create(gyvūnas);
šuo.bark = function() {
console.log('Au!');
};
šuo.bark(); // Au!
šuo.speak(); // Gyvūnas kalba (paveldėta iš gyvūno)
Taip prototipai leidžia objektams dalintis elgesiu ir savybėmis, kas yra objektinio programavimo pagrindas JavaScript'e.