Autor Zpráva
joe
Profil
Zdravím,

pokouším se nějakým způsobem přidat objektu nějakou metodu, čekal jsem, že to bude fungovat takto:

var A = {};
A.a = {
	first: function() {
		alert('first()');
	}
}

A.a.prototype.second = function() {
	alert('second()');
}

A.a.second();


Ale nejde to a dostávám chybu A.a.prototype is undefined. Co dělám špatně a nebo jak jinak dostat nové metody do objektu a v objektu A?

Díky
_es
Profil
joe:
Vlastnosť prototype je vlastnosťou funkcií.
Objekt, ktorý taká funkcia pri zavolaní s operátorom new vráti, má prototyp tej funkcie.
var A = {}; skryto volá funkciu Object, preto by si úpravou prototypu objektu A zmenil prototyp všetkých objektov.
Prístup k tomu prototypu je cez Object.prototype alebo cez A.constructor.prototype.
Na vlastné objekty s vlastným prototypom je treba definovať vlastnú funkciu - konštruktor.

jak jinak dostat nové metody do objektu a v objektu A?
Bez prototypu normálne:
A.a.nováVlastnosť = hodnotaVlastnosti;
joe
Profil
_es:
Tak už tomu rozumím, měl jsem pocit, že jsem někde četl, že se ten prototyp používá na objektech, asi jsem to špatně pochopil. Každopádně díky za vysvětlení.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0