Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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

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.