Autor Zpráva
cllater
Profil *
mam takovouto tridu.

function F_item(id, nastartovalo) { //vytvoreni hlavního objektu widget
this.id = id
this.nastartovat = function() {
alert(" nastartovalo");
}
}
udelam z ni objekt

form[pozice.i] = new F_item();

jak uchovat tu metodu nastartovalo do toho objektu? Ja ten objekt potom totiz ukladam do JSON

myJSONText = JSON.stringify(form);

a potrebuji aby se to tam nejak ulozilo abych po nacteni toho ulozene JSON tu metodu mohl zase pouzit.

jsem myslel ze takto nejak

form[pozice.j].nastartovat() = function() {
alert(" nastartovalo");
}

ale nejedeto.

Dik
Chamurappi
Profil
Reaguji na cllatera:
Do JSONu se běžně strkají jen data, neslouží k serializaci čehokoliv, co je možné vytvořit v JS. Objekty mohou mít i privátní proměnné (deklarované přes var), k těm se nikdy žádná cizí funkce nedostane, takže obecně uchovat v řetězci a zpětně reprodukovat stav jakéhokoliv objektu stejně není možné. Uživatelsky definovaný objekt potřebuje mít pro JSON dopsanou speciální podporu.

Funkce JSON.stringify dokáže pracovat s metodami jménem „toJSON“ na čemkoliv, takže si můžeš do konstruktoru svého F_itemu přidat:
this.toJSON = function()
{
  return "…";
};
… a sestavit si vlastní řetězcovou reprezentaci F_itemu. Do volání JSON.parse pak ale zase musíš dodávat funkci převádějící ten sestavený řetězec zpátky do toho tvého objektu. Na začátku zdrojáku třídy JSON najdeš v komentáři příklad s objektem Date.

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