Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Odpověď na názor

Odpovídáte na názor k článku Třídy, dědičnost a OOP v Javascriptu - I.

Daniel Steigerwald aura:52
15. 3. 2010 14:10

Re: Odpověď na dotaz Daniela Steigerwalda

celé vlákno

Jmenuji se Dan, David je můj bratr ;). Nechci vás zklamat, ale to co píšete je hrubý omyl. Scope (pole působnosti, viditelnosti.. vida jak jsou ty překlady zrádné ;) generuje v Javasciptu pouze funkce. Mluvit o složených závorkách je zavádějící, generuje snad literální zápis objektu nějaký scope?

var object = {foo: 'bla'}; // hle, složené závorky, ale žádný scope ;) 

Podívejte se na tento kód:

var a = function() {
    document.title += 'a';
} ();

var b = (function() {
    document.title += 'b';
})();

var c = new function() {
    document.title += 'c';
}; 

Podstatné jsou ty kulaté závorky na konci (nebo operátor new ve třetím příkladě) Všechny příklady vytváří scope. Scope vytváří v Javascriptu funkce (nic jiného), a to pouze tak, že je funkce zavolána.
Jak vidíte, v prvním příkladu kulaté závorky nejsou, a stejně funguje. Nicméně, důrazně doporučuji závorky vždy psát, a to čistě proto, že takový kód je pak čitelnější. Už na začátku je vidět, že je funkce uzavřena do závorek, takže se s ní chystám asi něco dělat. Třetí příklad zmiňuji jen pro zajímavost, používá jej třeba Dean Edwards.
Pokud však funkci ničemu nepřiřazuji, tedy klasické:

(function() {
// ha, právě sem vytvořil nový scope
})() 

Kulaté závorky kol funkce, jsou skutečně nutné, avšak pouze kvůli syntaxi. Samy o sobě scope nevytvářejí, ani funkci nevolají.

   
Chcete přispět jako registrovaný uživatel? Přihlaste se ke svému účtu.
Ochrana proti spamovacím robotům. Odpovězte prosím na následující otázku: Jaký je letos rok?
 

Pravidla pro diskutující: Přidáním čtenářského příspěvku do diskusí či fóra souhlasíte s pravidly.

Informace o soukromí: U všech přidaných komentářů provozovatel ukládá IP adresu a hostname odesílatele. U neregistrovaných uživatelů se na webu zobrazuje část hostname, případně IP adresy, neumožňující identifikovat konkrétní počítač.

Povolené značky XHTML: a, br, code, em, li, ol, p, pre, strong, sub, sup, ul