jQuery návod – (13) Klíčové slovo „this“

Dnešní díl našeho seriálu o jQuery se zaměří na jedno z nejdůležitějších slov v jazyce JavaScript a jeho použití v kontextu jQuery: klíčové slovo „this“. Toto slovo může být pro začátečníky trochu záhadné, ale s jeho pochopením přijde také mnoho možností v programování.

Reklama

1. Co je „this“?

V jazyce JavaScript klíčové slovo „this“ odkazuje na aktuální objekt, ve kterém je funkce spuštěna. Jeho konkrétní hodnota závisí na kontextu, ve kterém je funkce volána.

2. Použití „this“ v jQuery

Při práci s jQuery se často setkáváme s „this“ v rámci událostí:

$('button').click(function() {
    $(this).hide();  // Skryje tlačítko, na které bylo kliknuto
});

Výše uvedený kód přiřadí každému tlačítku na stránce událost kliknutí. Když na nějaké tlačítko kliknete, „this“ v rámci funkce odkazuje právě na toto tlačítko.

3. „This“ v rámci objektu

Pokud máte objekt s metodami, „this“ vám umožní přistupovat k vlastnostem a metodám tohoto objektu:

Reklama
var osoba = {
    jmeno: "Jan",
    pozdrav: function() {
        console.log("Ahoj, mé jméno je " + this.jmeno);
    }
};

osoba.pozdrav();  // Vypíše: "Ahoj, mé jméno je Jan"

4. Běžné chyby s „this“

Jednou z běžných chyb, které programátoři dělají, je ztráta kontextu „this“. Například v asynchronní funkci:

$('button').click(function() {
    setTimeout(function() {
        $(this).hide();  // Zde "this" již neodkazuje na tlačítko
    }, 1000);
});

Tento problém můžete vyřešit pomocí uzavírání „this“ do proměnné:

$('button').click(function() {
    var that = this;
    setTimeout(function() {
        $(that).hide();  // Správně odkazuje na tlačítko
    }, 1000);
});

5. Použití „call“ a „apply“ pro změnu hodnoty „this“

Metody „call“ a „apply“ vám umožní explicitně určit, co „this“ v dané funkci odkazuje:

function pozdrav(slovo) {
    console.log(slovo + ", mé jméno je " + this.jmeno);
}

var osoba = {jmeno: "Petr"};

pozdrav.call(osoba, "Ahoj");  // Vypíše: "Ahoj, mé jméno je Petr"

Závěr

Klíčové slovo „this“ je základním stavebním kamenem jazyka JavaScript a je nezbytné pro efektivní práci s jQuery. Doufám, že tento článek vám pomohl lépe porozumět jeho chování a použití.

Reklama

V příštím a posledním díle našeho seriálu se podíváme na několik tipů a triků, které vám pomohou stát se efektivnějším a produktivnějším vývojářem v jQuery. Uvidíme se brzy!

Reklama
Reklama
Zavřít reklamu