Autor | Zpráva | ||
---|---|---|---|
Darker Profil |
#1 · Zasláno: 29. 1. 2011, 22:29:19 · Upravil/a: Darker
Mějme:
var neco={fujtofuj:"", ble:{nefunkce:"", funkce:function(){var nic=""} } } Dá se nějak z neco.ble.funkce dostat jméno nadřazených elementů, popř. ty elementy samotné? |
||
ShiraNai7 Profil |
#2 · Zasláno: 29. 1. 2011, 22:48:00 · Upravil/a: ShiraNai7
Jednoduší je to řešit takto a máš snadný přístup ke všemu:
var neco = (function(){ // definujem vsechny promenne var prom = { fujtofuj: 'ahoj', ble: { nefunkce: '', funkce: function(){return prom.fujtofuj;} } }; // a vratime return prom; })(); A potom lze: alert(neco.ble.funkce()); // vypise ahoj |
||
Darker Profil |
#3 · Zasláno: 30. 1. 2011, 01:29:26
Obávám se, žes mě nepochopil. Já umím spouštět funkce v rámci objektů i pod jinými funkcemi.
O co mi jde, je najít nadřazený objekt. Konkrétně v tvém příkladu: Dokážeš přinutit funkci neco.ble.funkce() aby vypsala "neco", jako string, a tento řetězec získala ze svojí nadřazené funkce? |
||
Chamurappi Profil |
#4 · Zasláno: 30. 1. 2011, 04:30:16
Reaguji na Darkera:
Vymáčknout z proměnné jméno jako řetězec žádným standardním způsobem nejde. Neměl bys to k ničemu potřebovat. |
||
Darker Profil |
#5 · Zasláno: 30. 1. 2011, 13:50:26
Ok, to je fakt. Ale něco bych přece potřeboval. Opět budu pracovat s příkladem od skiry. Dejme tomu, že budu výtvářet libovolný počet objektů ble (každý dostane k názvu třeba "_"+rand() ) a budu chtít, aby ta funkce neco.ble_1234.funkce vypsala neco.ble_1234.fujtofuj,
a využila toho, že jejím nadřazeným objektem je ble_1234. Neboli se tam dostala přes hierarchii, podobně jako string.split je funkce s jedním argumentem, hodnotu string zjistí z toho, že její členská funkce. |
||
Darker Profil |
#6 · Zasláno: 30. 1. 2011, 20:29:42
Děkuji za rady, problém jsem nakonec vyžešil následovně:
neco.ble.parent=neco. Zjednodušeně. Odpověď jsem nalezl zde. |
||
Časová prodleva: 13 let
|
0