Ano, myslim to volanie.
Viem, ze v mnohych kodoch sa to tak uvadza, ale je to zle, prakticky ako keby si pouzival eval(). Mozes si prejst aj par prispevkov na djpw.cz, kde sa toto casto vycita. Vznika vtedy hlavne problem s parametrami nadradenej fcie, ku ktorym nemozes pristupovat, presne s tym si sa stretol aj ty, dam ti priklad:
Kód:
var g = 0; //toto je globalna premenna g
(function(g) //toto je anonymna fcia s parametrom nazvanym tiez g
{
setTimeout("alert(g)", 1); //pokus o vypisanie hodnoty parametra fcie, z ktorej setTimeout volame
})(1); //tuto anonymnu fciu okamzite volame a parameter g dostava hodnotu 1
Mozes si tento kod spustit a uvidis, ze ti vyhodi 0. Pouzil si skarede zle eval a to pristupilo ku globalnej premennej. Prave tu vyuzijes vyhodu tzv. closure, ktora dokaze pristupovat k parametrom nadradenej fcie:
Kód:
var g = 0;
(function(g)
{
setTimeout(function()
{
alert(g);
}, 1);
})(1);
Niektori experti dokonca spravia to, ze zapisu ako parameter setTimeoutu toto:
"alert("+g+")", cim ale predaju volanej fcii iba hodnotu, nie samotnu premennu/parameter, co robi uz pri retazcoch problemy, nehovoriac o objektoch.
A v neposlednom rade, pri pouziti closure ti funguje aj zvyraznovac syntaxe v editore

Co sa tyka filters, nemozes kontrolovat atribut objektu, pokial nevies, ci existuje samotny objekt. Pozri:
Kód:
var o = { foo: 1, bar: 2 };
alert(typeof o.qux);
Toto bez problemov vyhodi undefined - objekt
o existuje, neexistuje iba jeho atribut
qux, pretoze
o ma len 2 atributy
foo a
bar. Keby si zmazal prvy riadok a pouzil rovno
typeof o.qux bez zadefinovania
o, skonci to chybou. Preto nemozes pozerat atribut alpha objektu nieco.filters, ak nevies, ci nieco.filters existuje.
Ak ti je pribuznejsie PHP, podobne mozes spravit
Kód:
$pole = array('foo'=>1, 'bar'=>2);
echo isset($pole['qux']) ? 1 : 0;
Ale uz nemozes pouzit rovno isset($pole['qux']) bez definovania $pole, lebo pritomnost $pole nikde neoverujes.
A co sa tyka document.all? Fiha, vyzera to tak, ze nove verzie prehliadacov to uz odstranili, ale nikdy nevies. Na tuto temu si mozes pozriet clanok
Psi zivot na Webylone, je tam napisane akurat o document.all. A vobec, ak jes parky stale s horcicou, nejdes sa do chladnicky pozriet na horcicu, aby si zistil, ci mas parky. Chapeme?