quartz/content/Knowledge/Programming/JavaScript/Zakres/Execution Context.md
Adam Gospodarczyk 3bddcd3b48 2022/08/13
2022-08-13 10:08:21 +02:00

14 lines
1.1 KiB
Markdown

---
title: Execution Context
---
To abstrakcyjny koncept środowiska w którym **interpretowany i wykonywany jest kod [[Knowledge/Programming/JavaScript/JavaScript]]**. Za każdym razem gdy uruchamiamy kod JS, dzieje się to w [[Knowledge/Programming/JavaScript/Zakres/Execution Context]]
Wyróżniamy trzy rodzaje kontekstu wykonania:
- Globalny - istnieje tylko jeden w programie [[Knowledge/Programming/JavaScript/JavaScript]]
- Funkcyjny - tworzony jest w chwili wykonania funkcji. Każda funkcja posiada swój kontekst wykonania.
- Eval - kod wykonywany wewnątrz funkcji Eval również posiada swój kontekst.
Konteksty wykonania przechowywane są w tzw. [[Execution Stack]] do którego domyślnie trafia Globalny kontekst a następnie według zasady LIFO (last in, first out), pozostałe konteksty zostają do niego dodawane oraz usuwane.
<iframe width="560" height="315" src="https://www.youtube.com/embed/Hb0RG60gwh8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>