تعريف الوظائف في JavaScript
- الصفحة السابقة مراجع دالة JS
- الصفحة التالية معاملات دالة JS
تم تعريف الوظائف في جافا سكريبت من خلال الوظيفة المدرجة ستعود "
الكلمة المفتاحيةتعريف.
يمكنك استخدام وظيفةالبيانأو وظيفةالتعبير.
إعلان الوظيفة
في هذا الدرس، تعلمت سابقًا من خلال النحو التاليالبيانالوظيفة:
الوظيفة المدرجة ستعود " اسم الوظيفة(المتغيرات) { التعليمات التي يتم تنفيذها }
الوظائف التي يتم إعلانها لا تنفذ مباشرة. يتم "حفظها للإستخدام لاحقًا" وستُنفذ في وقت لاحق عندما يتم استدعاؤها.
مثال
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);
;الوظائف الغير مسمىالدالة المدمجة
لا تحتاج الوظائف التي يتم حفظها في المتغيرات إلى اسم وظيفة. يتم استدعاؤها دائمًا باستخدام اسم المتغير.
يُستخدم نقاط السطر في نهاية الوظيفة لأنها جزء من جملة قابلة للتنفيذ.
مبنى Function()
كما رأيتم في الأمثلة السابقة، يتم تعريف الوظائف في جافا سكريبت من خلال الوظيفة المدرجة ستعود "
الكلمات المفتاحية المحددة.
الوظيفة يمكن أن تكون أيضًا من خلال تسمية Function()
وظيفة بناء الدوال المدمجة في JavaScript لتحديد.
مثال
var myFunction = new Function("a", "b", "return a * b"); يمكن استخدام الدوال كقيم:
ليس من الضروري استخدام بناء الدوال.
مثال
var myFunction = function (a, b) {return a * b}; يمكن استخدام الدوال كقيم:
في معظم الحالات، يمكنك تجنب استخدام new
كلمة المفتاح.
رفع الدوال
في هذا الدرس، تعلمت سابقًا "رفع البيانات" (hoisting).
Hoisting هو عملية رفع البيانات في JavaScriptالبيانسلوك افتراضي لتحريك البيانات إلى أعلى النطاق الحالي.
يتم تطبيق رفع البيانات (Hoisting) على بيانات المتغيرات والadol.
لذلك، يمكن استدعاء الدوال في JavaScript قبل بياناتها:
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;
الدوال هي كائنات الدامج في JavaScript
typeofالوظيفة المدرجة ستعود "
function
".
لكن من الأفضل أن تصف دالة JavaScript ككائن.جميع الدوال في JavaScript تحتوي علىوالخصائصالطريقة.
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 الخاص بها. ليست مناسبة لتعريف طرق العناصر.
الدوال الشبيهة بالصيغة لم يتم الرفع. يجب تعريفها قبل استخدامها.
استخدام const أكثر أمانًا من استخدام var، لأن دالة التعبير دائمًا قيمة ثابتة.
إذا كانت الدالة عبارة عن جملة واحدة فقط، فإنه يمكن تقليل كلمة المفتاح return والكوما المزدوجة. لذا، قد يكون من الجيد الاحتفاظ بها:
مثال
const x = (x, y) => { return x * y };
IE11 أو الإصدارات الأقدم لا تدعم الدوال الشبيهة بالصيغة.
- الصفحة السابقة مراجع دالة JS
- الصفحة التالية معاملات دالة JS