/ / rozdiel medzi prototypom, ktorému bol priradený objekt doslovný oproti funkcii [duplikát] - javascript

rozdiel medzi prototypom priradeným objektom literal vs funkcia [duplicitné] - javascript

Našiel som tento článok na webe, ktorý ma veľmi mätie.

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

Keď spustím nasledujúci kód

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";
};

Hlavolamom je, že aj keď Pizza.prototyp.konštruktor v prípade1: je funkcia konštruktora a Pizza.prototype.constrcutor v prípade2: je funkcia objektu () a prípad2: oddeľuje reťazec dedičnosti. Ale prečo potom, keď popravím sausagePizza.divvyUp () pre oba prípady dostanem rovnaký výsledok. Keď však case2: oddeľuje dedičský reťazec a už neodkazuje na konštruktér Pizza (), tak prečo dostanem výsledok pre case2 podobný case1

odpovede:

2 pre odpoveď č. 1

Prvý nahradí celý prototype s objektom obsahujúcim jednu funkciu - divvyUp.

Ten upraví existujúce prototype, PRIDANIE (alebo nahradenie) funkcie divvyUp.

vyskúšať

console.log(Pizza.prototype);

po každej a mať lookie.