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

Pavel Kovář
25.09.2023 18:36

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í.

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:

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í.

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