هناك ثلاث طرق للإعلان عن الوظائف المخصصة في JavaScript، وهي استخدام عبارات الوظائف، واستخدام مُنشئات الوظيفة () وتحديد القيم الحرفية للوظائف.
1. بيان الوظيفة
في JavaScript، يمكنك استخدام بيان الوظيفة للإعلان عن الوظائف. الاستخدام المحدد هو كما يلي:
function funName([args]) { البيانات }
funName هو اسم الوظيفة، والذي يجب أن يكون معرف JavaScript قانونيًا، مثل اسم المتغير. بعد اسم الوظيفة توجد قائمة من المعلمات محاطة بين قوسين ومفصولة بفواصل. المعلمات اختيارية وليس هناك حد لعددها.
كمعرفات، يتم الوصول إلى المعلمات فقط داخل نص الوظيفة؛ المعلمات هي أعضاء خاصين في نطاق الوظيفة. عند استدعاء دالة، قم بتمرير قيمة إلى الدالة، ثم استخدم المعلمات للحصول على القيمة التي تم تمريرها خارجيًا، والتدخل في تشغيل الدالة داخل نص الدالة.
بعد الأقواس يوجد قوس، والبيان الموجود في القوس هو المحتوى الرئيسي لهيكل الجسم الوظيفي. في نص الدالة، تعتبر الأقواس المتعرجة ضرورية. بدون الأقواس المتعرجة، ستؤدي JavaScript إلى حدوث خطأ في بناء الجملة.
يجب أن يحتوينموذج
بيان الدالة على اسم الدالة، والأقواس، والأقواس، ويمكن حذف التعليمات البرمجية الأخرى، وبالتالي فإن أبسط نص للدالة هو دالة فارغة.
function funName() {} // وظيفة فارغة
إذا كنت تستخدم وظيفة مجهولة، فيمكنك حذف اسم الوظيفة.
function () {} //
عبارة var الوظيفية الفارغة وبيان الوظيفة عبارة عن عبارات إعلانية، ويتم تحليل المتغيرات والوظائف التي يعلنونها عند تجميع JavaScript مسبقًا، والمعروف أيضًا باسم ترقية المتغير وترقية الوظيفة. خلال فترة ما قبل الترجمة، سيقوم محرك JavaScript بإنشاء سياق لكل وظيفة، وتحديد كائن متغير، وتسجيل جميع المعلمات الرسمية، والمتغيرات الخاصة، والوظائف المتداخلة في الوظيفة كسمات على الكائن المتغير.
2. مُنشئ الوظيفة ()
استخدم مُنشئ الوظيفة () لإنشاء الوظائف بسرعة. الاستخدام المحدد هو كما يلي:
var funName = new Function(p1, p2, ..., pn, body);
جميع أنواع معلمات الوظيفة () p1~pn تمثل قائمة أسماء المعلمات للوظيفة التي تم إنشاؤها. ويمثل الجسم عبارات بنية الوظيفة التي تم إنشاؤها للوظيفة، مفصولة بفواصل منقوطة بين عبارات النص.
يمكنللمثال 1
حذف جميع المعلمات وتمرير سلسلة فقط لتمثيل نص الوظيفة.
var f = new Function ("a"، "b"، "return a+b"); // استنساخ بنية الوظيفة من خلال المُنشئ
. يتم تعريف نفس الوظيفة، ويمكن تصميم الوظائف التي لها نفس البنية باستخدام بيان الوظيفة.
function f(a, b) { // استخدم بيان الوظيفة لتحديد بنية الوظيفة return a + b; }يستخدم
المثال 2
مُنشئ الدالة Function() لإنشاء بنية دالة فارغة دون تحديد أية معلمات.
var f = new Function(); // تحديد دالة فارغة
استخدم مُنشئ الوظيفة () لإنشاء الوظائف ديناميكيًا. يتيح استخدام مُنشئ الوظيفة () استخدام الوظيفة كتعبير وليس كبنية، لذا فهي أكثر مرونة في الاستخدام. العيب هو أن مُنشئ الوظيفة () يتم تجميعه أثناء التنفيذ، وكفاءة التنفيذ منخفضة جدًا، ولا يُنصح باستخدامه بشكل عام.
3. وظيفة مجهولة (وظيفة حرفية)
تسمى الوظيفة الحرفية أيضًا وظيفة مجهولة، أي أن الوظيفة ليس لها اسم وظيفة وتحتوي فقط على الكلمة الأساسية للوظيفة والمعلمات ونص الوظيفة. الاستخدام المحدد هو كما يلي:
الوظيفة ([args]) { البيانات }
مثال 1
يعرّف التعليمة البرمجية التالية دالة حرفية.
function (a, b) { // الوظيفة الحرفية return a + b; }
في الكود أعلاه، تكون القيم الحرفية للوظيفة هي في الأساس نفس استخدام عبارات الوظيفة لتحديد بنيات الوظائف، وقد تم إصلاح بنياتها. ومع ذلك، لا تحدد الوظيفة الحرفية اسم الوظيفة، ولكنها تستخدم وظيفة الكلمة الأساسية مباشرة لتمثيل بنية الوظيفة. ويسمى هذا النوع من الوظائف أيضًا وظيفة مجهولة.
مثال 2:
دالة مجهولة هي تعبير، أي تعبير دالة، وليست عبارة عن بنية دالة. بعد ذلك، قم بتعيين الدالة المجهولة كقيمة للمتغير f.
// قم بتعيين الدالة كقيمة مباشرة للمتغير f فار و = الوظيفة (أ، ب) { العودة أ + ب؛ };
عندما يتم تعيين بنية الوظيفة لمتغير كقيمة، يمكن استدعاء المتغير كدالة، ويشير المتغير إلى الوظيفة المجهولة.
console.log(f(1,2)); //قيمة الإرجاع 3
مثال 3
تعمل الوظائف المجهولة كقيم ويمكنها المشاركة في عمليات التعبير الأكثر تعقيدًا. في المثال أعلاه، يمكنك استخدام الكود التالي لإكمال العملية المتكاملة لتعريف الوظيفة واستدعاءها.
console.log( // استدعاء الوظيفة كمعامل (function (a,b) { العودة أ + ب؛ })(1, 2)); //قيمة الإرجاع 3
بمجرد تعريف الوظيفة، يمكننا استدعاؤها في أي مكان في المستند الحالي. يعد استدعاء دالة أمرًا بسيطًا للغاية، ما عليك سوى إضافة قوسين بعد اسم الوظيفة، مثل التنبيه () والكتابة (). لاحظ أنه إذا تم تحديد المعلمات بين قوسين بعد اسم الوظيفة عند تعريف الوظيفة، فيجب توفير المعلمات المقابلة بين قوسين عند استدعاء الوظيفة.
نموذج التعليمات البرمجية كما يلي:
وظيفة sayHello(name){ document.write("مرحبا" + الاسم); } // اتصل بوظيفة sayHello() sayHello('موقع PHP الصيني');
نصيحة: JavaScript حساس لحالة الأحرف، لذا يجب أن تكون الكلمة الأساسية للوظيفة صغيرة عند تعريف دالة، ويجب استدعاء الوظيفة في نفس الحالة التي تم الإعلان عنها فيها.
ما ورد أعلاه هو تحليل متعمق لإعلان واستدعاء وظائف JS المخصصة. لمزيد من المعلومات، يرجى الانتباه إلى المقالات الأخرى ذات الصلة على موقع PHP الصيني!