Autor Zpráva
Darker
Profil
Chtěl bych vzít objekt (nějaké konstanty) a nahrát jej do funkce jako by to byl seznam proměnných deklarovaných ve funkci.
var object={
   value: "string",
   boolean: true
}
function funkce () {
 /*Provedu kouzlo*/
 alert(value); //Vyskočí "string"
}

A chtěl bych to nějak provést bez this nebo jména funkce.
Chamurappi
Profil
Reaguji na Darkera:
To kouzlo se jmenuje with a není příliš doporučované. K čemu takovou věc potřebuješ?
_es
Profil
Darker:
Nie je ti rozumieť, čo chceš, respektíve, aký má byť účel.
Hodnotu "string" máš v object.value.

alert(value); //Vyskočí "string"
Sú nejaké spôsoby, ktorými sa dá také niečo dosiahnuť, no sú nedoporučované (Chamurappi ma predbehol a jeden spôsob prezradil.)

Na zmenu hodnoty this vo funkcii sa dajú použiť metódy apply a call tej funkcie.

Chamurappi:
To kouzlo se jmenuje with
Dá sa to ešte aj iným, tiež nedoporučovaným, „kúzlom“ vo vnútri funkcie: Cyklom for...in a funkciou eval vytvoriť vo funkcii lokálne premenné.
Darker
Profil
Jen z lenosti, protože chci mít objekt globální, jsou to nastavení ale jsem líný to vypisovat pořád dokola.
Cyklus for(i in object) mě napadl, ale právě kvůli eval jsem ho rovnou zavrhl. Mít něco takového na začátku fuinkce nechci.

Nicméně článek o with uvedl přesvědčivé argumenty proč se na with vykašlat.
Ale mockrát děkuji za odkazy, jak o with, tak ani a metodách apply a call jsem nevěděl.

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