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

Názor k článku
Javascript a oblast působnosti proměnných - díl první

Daniel Steigerwald
Daniel Steigerwald (neregistrovaný) ---.67.broadband2.iol.cz
7. 8. 2009 20:45

JavaScript díl 1 - proměnné

celé vlákno

.. abych jen nekybicoval, jak bych to napsal já.

Proměnou deklarujeme pomocí klíčového slova „var“, např.

var bla = 'foo'.

To var tam dávejte vždycky, poběží to sice bez toho, ale koledujete si zbytečně o problémy, protože proměnná tak bude globální a jelikoz Internet Explorer propaguje všechny ID elementů do globálního scope, může dojít ke kolizi názvů.

Funkci deklarujete bud tak, ze ji pojmenujete:

function foo() {}

nebo priradite anonymní funkci deklarované proměnné:

var foo = function() {}

Kombinace obou přístupů je možná, ale zbytečná.

Chcete-li 100% crossbrowser přístup, tak na pojmenované funkce zapomeňte, prohlížeče je interpretují rozdílně. Třeba safari nadeklaruje i tuto funkci:

if (false) function foo(){};

takže vždy psát:

var foo = function() {};

Jakmile proměnou deklarujete, můžete ji používat a odkazovat se na ní. Jaká je její viditelnost? Proměnná je viditelná v celém scope(rozsahu) funkce, ve které je definovaná. Pokud není definovaná ve funkci, je viditelná všude, tedy globální.

Co to znamená scope? Všechno uvnitř nějaké funkce:

var foo = function() { // tady je scope foo var bla = function() { // tady je scope bla } }

Scope funkce, jak je vidět, tedy může být zanořený. Zanořovat lze do alelůja, vydáme-li se však opačným směrem, skončíme u objektu window (pakliže se bavíme o javascriptu v prohlížečích).

Další díl: co je to „context“ a jak funguje „this“.

:)