Sobes.tech
Middle

Kako funkcioniše sistem prototipa u JavaScriptu?

sobes.tech АИ

Одговор од АИ

У JavaScript-у систем прототипа је механизам наслеђивања у којем објекти могу наследити својства и методе од других објеката.

Сваки објекат има унутрашњу својство [[Prototype]] (доступно преко __proto__ или Object.getPrototypeOf), које указује на други објекат — прототип. Ако приликом приступа својству објекта оно није пронађено, претрага се наставља у прототипу, затим у прототипу прототипа и тако даље, док се не достигне null.

Ово омогућава стварање ланаца прототипа и имплементацију наслеђивања без класа (иако у модерним верзијама JS постоји синтакса класа, која користи прототипе у позадини).

Пример:

const животиња = {
  speak() {
    console.log('Животиња говори');
  }
};

const пас = Object.create(животиња);
пас.bark = function() {
  console.log('Га!');
};

пас.bark();    // Га!
пас.speak();   // Животиња говори (наследјено од животиња)

Овим путем, прототипи омогућавају објектима да деле понашање и својства, што је основа објектно-оријентисаног програмирања у JavaScript-у.