Luca tu sei stato chiarissimo!!
Si, un metodo è una proprietà di un oggetto che contiene (per riferimento) una funzione.
Quindi in sostanza il costruttore è il prototipo (come mi dicevi) e prototype è semplicemente un metodo (interno al costruttore-prototipo) che mi permette di accedere al costruttore stesso e apportarvi modifiche.
Se ho capito bene la cosa è estremamente semplice.
Mi sono un pò confusa perché da quel che leggevo in giro avevo capito che prototype fosse il prototipo e non ci capivo più nulla.
Quindi diciamo che in soldoni qualsiasi costruttore io abbia (sia che lo abbia creato io sia che sia uno di quelli predefiniti in JS) posso accedervi con la sintassi nomeCostruttore.prototype e usarla per aggiungere nuove proprietà e metodi al costruttore.
Per intenderci, come dicevi tu:
function Quadrato(lato){
this.lato = lato;}
var quadrato1 = new Quadrato(8) //contiene solo la proprietà lato
Quadrato.prototype.figura = "Quadrato";
var quadrato2 = new Quadrato(7); //contiene due proprietà (lato e figura)
La domanda che mi rimane è se uso this per incrementare un costruttore con il metodo prototype... questo this si riferisce all'oggetto incrementato dal costruttore giusto?
Per esempio (continuando sul nostro Quadrato()):
Quadrato.prototype.perimetro = function() {return this.lato*4};
var quadrato3 = new Quadrato(5) // contiene due proprietà (lato e figura) e un metodo(perimetro()) che ritorna 20
Giusto?
E quando si parla di catena di prototipi si parla di catena di costruttori in sostanza? Giusto?
Cmq grazie, sei troppo gentile ad aiutarmi.

Rispondi quotando
