مشخصات مقاله
-
0
-
0.0
-
2166
-
0
-
0
آموزش کار با تابع اجرای سریع IIFE در ES6
آموزش کار با تابع های اجرای سریع IIFE در ES6:
تابع اجرای سریع یا Immediately Invoked Function Expression که به اختصار به آن IIFE می گوییم، تابع هایی هستند که به محض تعریف، اجرا می شوند. از تابع های IIFE می توانید برای عدم استفاده از قابلیت استفاده پیش از تعریف متغیرها (Variable Hoisting) درون بلوک های کد، بهره بگیرید. تابع IIFE امکان دسترسی عمومی (Public) به متدها را می دهد در حالی که حریم اختصاصی متغیرهای تعریف شده در تابع را فراهم می کند.
IIFE یک الگوی طراحی (Design Pattern) است که تحت عنوان تابع های بی نام خودکار (Self-Executing Anonymous Function) نیز نامیده شده و شامل 2 بخش اصلی است:
- بخش اول یک تابع بی نام (anonymous function) با دامنه عملکرد و کد مشخص است که در انتها با یک () بسته شده است.
- قسمت دوم بخشی است که تابع IIFE را ایجاد کرده و موتور جاوا اسکریپت آن تابع را مستقیما تفسیر و اجرا می کند.
ساختار دستوری نوشتن یک تابع اجرای سریع IIFE به صورت زیر است:
(function ()
{
statements
})();
// Syntax of IIFE with ES6 arrow functions (though parentheses only allowed on outside)
(() => { /* ... */ })();
مثال: در کد مثال عملی زیر، یک تابع اجرای سریع IIFE را نوشته ایم که به محض تعریف، عبارت “Hello World” را در خروجی نمایش می دهد:
(function()
{
console.log("Hello World");
})();
خروجی
Hello World
تبدیل تابع های معمولی به تابع IIFE:
می توانید تابع های معمولی جاوا اسکریپت را با انجام اقدامات زیر به یک تابع اجرای سریع IIFE تبدیل کنید:
- تعریف هر تابع معمولی جاوا اسکریپت را در نظر بگیرید.
- تعریف تابع را درون یک جفت پرانتز قرار دهید که کد تابع را مشخص می کند.
- در آخر هم یک جفت پرانتز () و یک سیمیکلون ; در انتهای تابع اضافه کنید.
مثال: در کد مثال زیر، یک تابع معمولی به نام hello() را به صورت اجرای سریع IIFE بازنویسی کرده ایم:
// Regular Function.
function hello()
{
console.log("Regular function");
};
// Regular Function execution.
hello();
// IIFE creation and execution.
(function() { console.log("Immediately Invoked Function Expression"); })();
خروجی
Regular function
Immediately Invoked Function Expression
نکات کلیدی درباره تابع های اجرای سریع IIFE:
- توابع اجرای سریع IIFE دارای محدوده عملکرد (Scope) مخصوص خود بوده و متغیرها (Variables) تعریف شده در آنها، در بیرون از تابع قابل دسترسی نیستند.
- همانند تابع های معمولی جاوا اسکریپت، تابع های IIFE را می توانید به صورت بی نام (anonymous) یا نامدار تعریف کنید.
- برای تابع های IIFE می توانید پارامتر یا پارامترهای دلخواه را تعیین کنید، همانند کد مثال زیر:
(function (x, y, z) {
console.log(x);
console.log(y);
console.log(z);
})(100, 200, 300);
خروجی
100
200
300