تعریف توابع JavaScript
- صفحه قبلی اشاره به شیء JS
- صفحه بعدی پارامترهای تابع JS
توابع جاوااسکریپت از طریق function
واژهکلیدیتعریفاستفاده کنید.
میتوانید از توابعاعلامیا توابععبارتاست.
دستور تعریف توابع
در آموزشهای قبلی این دوره، شما یاد گرفتید که از طریق چنین نحویاعلامتوابع:
function نام توابع(پارامترها) { کدی که باید اجرا شود }
توابعی که با استفاده از آنها تعریف شدهاند، مستقیماً اجرا نمیشوند. آنها «ذخیره میشوند برای استفاده بعدی» و در زمان اجرا، زمانی که فراخوانی میشوند، اجرا میشوند.
مثال
function myFunction(a, b) { return a * b; }
نشانگذار نیمکره برای جدا کردن دستورات قابل اجرای جاوااسکریپت استفاده میشود.
به دلیل توابعاعلامعبارتهای توابع قابل اجرا نیستند و معمولاً با نشانگذار نیمکره به پایان نمیرسند.
عبارت توابع استفاده کنند
توابع جاوااسکریپت نیز میتوانند ازعبارتبرای تعریف.
توابع نمونه میتوانند در متغیرها ذخیره شوند:
مثال
var x = function(a, b) {return a * b};
پس از ذخیره کردن توابع در متغیر، این متغیر میتواند به عنوان یک توابع استفاده شود:
مثال
var x = function(a, b) {return a * b}; var z = x(4, 3);
توابع بالا در واقع یکتوابع ناشناس(توابع بدون نام).
توابعی که در متغیرها ذخیره میشوند، نیازی به نام ندارند. آنها همیشه با نام متغیر فراخوانی میشوند.
توابعی که با نشانگذار نیمکره به پایان میرسند، بخشی از یک دستور قابل اجرا هستند.
Constructor Function() تعریف میشوند.
همانطور که در مثالهای قبلی دیدید، توابع جاوااسکریپت از طریق function
واژهکلیدی تعریف شوند.
فنون میتوانند از طریق نامی به عنوان Function()
کامپایلر داخلی جاوااسکریپت برای تعریف.
مثال
var myFunction = new Function("a", "b", "return a * b"); var x = myFunction(4, 3);
در جاوااسکریپت اجتناب کنید.
مثال
var myFunction = function (a, b) {return a * b}; var x = myFunction(4, 3);
در بیشتر موارد، میتوانید از استفاده از new
واژهکلیدی.
برافراشتن توابع
در این آموزش که قبلاً یاد گرفتید، "Hoisting" (برافراشتن) را آموختید.
Hoisting جاوااسکریپتاعلامرفتن به رفتار پیشفرض به بالای محدودهی فعلی.
Hoisting به کار میرود برای
به همین دلیل، توابع جاوااسکریپت میتوانند قبل از
myFunction(5); function myFunction(y) { return y * y; }
توابع تعریف شده با استفاده از عبارت
توابع خودکار فراخوانی شده
توابع عبارتی میتوانند به عنوان
عبارات خودکار فراخوانی شده به صورت خودکار فراخوانی میشوند (شروع)
توابع عبارتی خودکار به اجرا در میآیند، اگر عبارت ()
است.
شما نمیتوانید توابع را خودکار فراخوانی کنید.
شما باید در اطراف توابع خود پرانتز اضافه کنید، تا نشان دهید که آن یک
مثال
(function () { var x = "Hello!!"; // من خودم را فراخوانی میکنم })();
توابع بالا در واقع یکتوابع خودکار فراخوانی شده(توابع بدون نام).
مقدار استفاده شوند
توابع جاوااسکریپت میتوانند به عنوان
مثال
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3);
توابع جاوااسکریپت میتوانند در عبارات استفاده شوند:
مثال
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3) * 2;
شیء هستند
توابع در جاوااسکریپت typeof
عملگر به توابع بازمیگردد "function
".
اما بهتر است توابع جاوااسکریپت را به عنوان
همه توابع جاوااسکریپت دارندخصوصیاتومетодاست.
arguments.length
شمارندهای است که تعداد ارگومانهای
مثال
function myFunction(a, b) { return arguments.length; }
toString()
مетод به صورت رشته به شما
مثال
function myFunction(a, b) { return a * b; } var txt = myFunction.toString();
توابعی که به عنوان ویژگیهای شیء تعریف شدهاند، به عنوان روشهای شیء شناخته میشوند.
توابعی که برای ایجاد شیء جدید طراحی شدهاند، به عنوان توابع سازنده شیء (سازنده شیء) شناخته میشوند.
توابع پیکان
توابع پیکان به شما اجازه میدهند از یک زبان ساده برای نوشتن توابع عبارتی استفاده کنید.
شما نیاز به کلیدواژه function، کلیدواژه return و قفصهها ندارید.
مثال
// ES5 var x = function(x, y) { return x * y; } // ES6 const x = (x, y) => x * y;
توابع پیکان این خود این this ندارند. آنها برای تعریف روشهای شیء مناسب نیستند.
توابع پیکان به بالا بردن (hoisting) نمیشوند. آنها باید قبل از استفاده تعریف شوند.
استفاده از const در مقایسه با var امنتر است، زیرا همیشه مقدار ثابت است.
اگر تابع یک جمله واحد است، فقط میتوانید کلیدواژه return و قفصهها را حذف کنید. بنابراین، نگه داشتن آنها ممکن است یک عادت خوب باشد:
مثال
const x = (x, y) => { return x * y };
IE11 و نسخههای قدیمیتر از آن از توابع پیکان پشتیبانی نمیکنند.
- صفحه قبلی اشاره به شیء JS
- صفحه بعدی پارامترهای تابع JS