Autor | Zpráva | ||
---|---|---|---|
joe Profil |
#1 · Zasláno: 25. 1. 2011, 10:00:42
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 |
#2 · Zasláno: 25. 1. 2011, 10:35:17 · Upravil/a: _es
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 |
#3 · Zasláno: 25. 1. 2011, 14:47:46
_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í. |
||
Časová prodleva: 13 let
|
0