| 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: 16 let
|
|||
0