NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: JavaScript neuvědomující si co je this.

V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Michal Žůrek - misaz:12.12.2013 21:22

Ahoj, setkal jsem se teď s takovým podivným problém, přijde mi že JavaScript, dkyž zpracovává rychl e hromadu příkazů, tak nějak zapomeno co přesně je this a za this mi označí window i přesto že by to měl být objekt, nesetkal jste se s tím někdo jiný? Kde byla chybka, co mi může unikat?

Ještě doplním, že volám z this funkce další this funkci:

function Objekt {
    this.funkce1 = function () {

    }
    this.funkce2 = function () {
        this.funkce1();
    }
}
Editováno 12.12.2013 21:25
 
Odpovědět
12.12.2013 21:22
Avatar
Odpovídá na Michal Žůrek - misaz
Drahomír Hanák:12.12.2013 22:03
var res = Objekt(); // this === windows
var res = new Objekt(); // this je vlastní objekt

Tohle není moc dobrý způsob. Např. ve V8 (Chrome) se to bude chovat tak, že při každém vytvoření objektu se na něj dynamicky přidají všechny ty funkce jako vlastnosti toho objektu. Mnohem lepší je definovat je na prototypu té dané funkce (Objekt), takže se vytvoří jen jednou a kompilátor bude jasně vědět, jaké metody tam má, ještě před vytvořením objektu.

 
Nahoru Odpovědět
12.12.2013 22:03
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Tato diskuze byla označena moderátorem jako nekonstruktivní a myslíme si, že nemá pro veřejnost příliš vysokou hodnotu. Členy můžete samozřejmě stále oslovit soukromě a to formou zpráv nebo chatu.

Zobrazeno 2 zpráv z 2.