Sobes.tech
Middle

Come funziona il sistema dei prototipi in JavaScript?

sobes.tech AI

Risposta dell'AI

In JavaScript, il sistema di prototipi è un meccanismo di ereditarietà in cui gli oggetti possono ereditare proprietà e metodi da altri oggetti.

Ogni oggetto ha una proprietà interna [[Prototype]] (accessibile tramite __proto__ o Object.getPrototypeOf), che punta a un altro oggetto — il prototipo. Se una proprietà non viene trovata durante l'accesso a un oggetto, la ricerca continua nel prototipo, poi nel prototipo del prototipo, e così via, fino a raggiungere null.

Questo permette di creare catene di prototipi e di implementare l'ereditarietà senza classi (anche se nelle versioni moderne di JS esiste la sintassi delle classi, che utilizza sotto il cofano i prototipi).

Esempio:

const animal = {
  speak() {
    console.log('L'animale parla');
  }
};

const cane = Object.create(animal);
cane.bark = function() {
  console.log('Woof!');
};

cane.bark();    // Woof!
cane.speak();   // L'animale parla (eredato da animal)

In questo modo, i prototipi permettono agli oggetti di condividere comportamenti e proprietà, che costituiscono la base della programmazione orientata agli oggetti in JavaScript.