Jak víme Execution Context (EC) sestávají z
- Proměnné prostředí
- Řetězec rozsahu
- toto klíčové slovo
Pojďme tedy toto klíčové slovo prozkoumat více.
- "toto " klíčové slovo /proměnná v JS.
-
toto je speciální proměnná, která se vytváří pro každý kontext provedení (EC) tj. pro každou funkci.
-
toto má hodnotu (nebo ukazuje na) vlastníka funkce, ve které je "toto " je použito klíčové slovo.
-
Pamatujte si "toto" není statická, závisí na tom, jak je funkce volána, a její hodnota je přiřazena pouze tehdy, když je funkce skutečně volána.
Jak víme, funkci lze volat 4 různými způsoby
a. metoda => this =<objekt, který metodu volá>
- Příklad:
Call to the function moreshwar.calcAge();
Poznámka :Hodnota _*toto * _should / je moreshwar
-
Jak nyní můžeme říci, že toto je objekt, který volá metodu.
-
Takže pomocí tohoto nyní máme přístup k vlastnostem objektu. Přístup k vlastnostem pomocí (toto ) je mnohem lepší řešení.
b. Jednoduché volání funkce:kde toto =nedefinováno
Note: its is valid only for strict mode
Př.
-
Pokud není přísný režim, toto bude ukazovat na globální objekt / objekt Windows. Což pak může být více problematické.
-
To je důvod, proč bychom měli vždy používat přísný režim .
c. Volání funkce pomocí funkce Arrow
-
tj. ArrowFunctionName => =<toto funkce ozvučení (lexikální toto)>
-
Ve funkci Arrow nezíská "toto klíčové slovo ".
."
d.
EventListner => this = <DOM elements that handler is attachedto>
-
Toto tedy nikdy nebude ukazovat na funkci, kde ji používáme, by ukazovalo na objekt (rodičovský objekt).
-
Také „toto Klíčové slovo " nikdy nebude ukazovat na proměnné prostředí funkce.
-
"toto." " klíčové slovo v globálním rozsahu je vždy Windows Objekt, díky kterému je toto klíčové slovo dynamické ne statické.