/ / differenza tra il prototipo a cui viene assegnato un oggetto letterale e la funzione [duplicato] - javascript

differenza tra il prototipo assegnato a un oggetto letterale vs funzione [duplicato] - javascript

Ho trovato questo articolo sul web che mi confonde molto.

http://jonathancreamer.com/object-literals-and-prototypes-in-javascript/

Quando eseguo il codice seguente

case2:
Pizza.prototype = {
divvyUp: function () {
return this.type  + " pizza which has " + this.slices +" slices";
}
};

Versus case1:

Pizza.prototype.divvyUp = function () {
return this.type  + " pizza which has " + this.slices +" slices";
};

L'enigma è che però Pizza.prototype.costruttore in case1: è la funzione di costruzione e Pizza.prototype.constrcutor in case2: è la funzione object () e case2: disaccoppia la catena di ereditarietà. Ma allora perché quando eseguo salsicciaPizza.divvyUp () per entrambi i casi ottengo lo stesso risultato. Tuttavia, quando case2: disaccoppia la catena di ereditarietà e non fa più riferimento al costruttore di Pizza (), perché ottengo il risultato per case2 simile a case1

risposte:

2 per risposta № 1

Il primo sostituirà il intero prototype con un oggetto contenente una singola funzione - divvyUp.

Quest'ultimo modificherà il file esistente prototype, AGGIUNGERE (o sostituire) la funzione divvyUp.

Provare

console.log(Pizza.prototype);

dopo ogni e avere un lookie.