مفهوم Execution Context و Call Stack در جاوا اسکریپت






مفهوم Execution Context و Call Stack در جاوا اسکریپت

مفهوم Execution Context و Call Stack در جاوا اسکریپت

Execution Context چیست؟

Execution Context به طور ساده، محیطی است که کد جاوااسکریپت در آن اجرا می‌شود. هر زمان که یک تابع فراخوانی می‌شود، یک Execution Context جدید ایجاد می‌شود و وظیفه آن اجرای کد تابع مورد نظر است.

Call Stack چیست؟

Call Stack یک داده ساختار است که وظیفه آن ذخیره سازی Execution Context ها به صورت پشته (Stack) است. هر زمان که یک تابع فراخوانی می‌شود، Execution Context مربوط به آن به Call Stack اضافه می‌شود و هنگام اتمام اجرای تابع، Execution Context از Call Stack حذف می‌شود.

مثالی از Execution Context و Call Stack


function greet(name) {
  console.log("Hello, " + name + "!");
}

function welcome() {
  greet("Alice");
}

welcome();
  • زمانی که تابع welcome فراخوانی می‌شود، Execution Context مربوط به آن به Call Stack اضافه می‌شود.
  • سپس تابع greet با آرگومان “Alice” فراخوانی شده و Execution Context جدید ایجاد می‌شود و به Call Stack اضافه می‌شود.
  • در نهایت، پس از چاپ پیام خوش آمد گویی، Execution Context مربوط به تابع greet از Call Stack حذف می‌شود و سپس Execution Context مربوط به تابع welcome نیز از Call Stack حذف می‌شود.

نتیجه گیری

Execution Context و Call Stack دو مفهوم اساسی در جاوا اسکریپت هستند که به ما کمک می‌کنند تا بفهمیم کد ما در چه مرحله‌ای از اجرا قرار دارد و چگونه توابع به هم فراخوانی می‌شوند.