يمكن للوظائف المجهولة أن تضمن بشكل فعال أن JavaScript مكتوب على الصفحة دون التسبب في تلوث المتغيرات العالمية.
هذا يعمل بشكل جيد للغاية وهو جميل عند إضافة JavaScript إلى صفحة غير مألوفة للغاية.
1. ما هي الوظيفة المجهولة؟
هناك عمومًا ثلاث طرق لتحديد وظيفة في JavaScript:
بيان الكلمة الرئيسية الوظيفة:
دالة fnmethodname (x) {Alert (x) ؛}
وظائف الحرفية:
var fnmethodname = function (x) {Alert (x) ؛}
وظيفة () مُنشئ:
var fnmethodname = دالة جديدة ('x' ، 'Alert (x) ؛')
تحدد الطرق الثلاث المذكورة أعلاه وظيفة الطريقة نفسها fnmethodname.
الأول هو الطريقة الأكثر استخدامًا. يجب على الأخرين نسخ وظيفة إلى fnmethodname المتغير ، وهذه الوظيفة ليس لها اسم ، أي وظيفة مجهولة.
في الواقع ، الكثير من اللغات لها وظائف مجهولة.
2. الفرق بين الحرفيات الوظيفية والوظيفة () مُنشئين
على الرغم من أن الوظيفة الحرفية هي وظيفة مجهولة المصدر ، فإن بناء الجملة يسمح بتحديده مع أي اسم وظيفة. يمكن تسميتها نفسه عند كتابة وظيفة متكررة ، ولكن لا يمكن القيام بها باستخدام مُنشئ الدالة ().
var f = function fact (x) {if (x <= 1) return 1 ؛ عودة أخرى x*fact (x-1) ؛ } ؛
يسمح مُنشئ الدالة () بإنشاء وتجميع رمز JavaScript في وقت التشغيل. وبهذه الطريقة تشبه الوظيفة العالمية eval ().
يقوم المُنشئ () بتوزيع جسم الوظيفة في كل مرة يتم تنفيذها وإنشاء كائن وظيفة جديد. لذلك ، فإن كفاءة استدعاء الوظيفة () في حلقة أو وظيفة تنفيذها في كثير من الأحيان منخفضة للغاية. على العكس من ذلك ، لا يتم إعادة ترجمة الحرفيات الوظيفية في كل مرة يواجهونها.
عند إنشاء وظيفة باستخدام مُنشئ الدالة () ، فإنه لا يتبع النطاق النموذجي ، فإنه ينفذها دائمًا كدالة من المستوى الأعلى.
var y = "Global" ؛
دالة constructFunction () {var y = "local" ؛ إرجاع وظيفة جديدة ("إرجاع y") ؛ // لا يمكن الحصول على متغير محلي} ALERT (constructFunction () ()) ؛ // إخراج "Global" وتعريف الكلمة الرئيسية للوظيفة لها خصائصها الخاصة وأكثر صعوبة في الاستخدام من منشئات الوظيفة ().
لذلك نادراً ما تستخدم هذه التكنولوجيا.
وظيفة التعبير الحرفي وتعريف الكلمة الرئيسية الوظيفة متشابهان للغاية.
بالنظر إلى الفرق السابق ، على الرغم من وجود رسائل تقول إن الوظائف المجهولة الحرفية لها أخطاء تحت محركات ويب معينة بموجب OS X 10.4.3 ،
لكن ما نسميه عادة وظائف مجهولة ، تشير إلى وظائف مجهولة تستخدم الشكل الحرفي للوظيفة.
3. وضع رمز الوظائف المجهولة
وضع الخطأ: لا يمكن أن يعمل ، سيقوم المتصفح بالإبلاغ عن خطأ في بناء الجملة.
function () {Alert (1) ؛ } () ؛
الدالة الحرفية: أولاً ، أعلن كائن وظيفة ، ثم تنفذه.
(function () {Alert (1) ؛}) () ؛
التعبير التفضيلي:
(function () {Alert (2) ؛} ()) ؛
مشغل باطل:
وظيفة void () {Alert (3) ؛ } () هي نفسها. يفضل Hedger Wang النوع الثالث لأسباب شخصية ، بينما في التطبيقات الفعلية ، أرى وأستخدم النوع الأول.
4. تطبيق وظائف مجهولة
الجملة الأولى في "نمط الوحدة النمطية لـ JavaScript" هي "المتغيرات العالمية هي الشيطان".
مع الكلمة الرئيسية VAR ، يمكن للوظائف المجهولة أن تضمن بشكل فعال أن JavaScript مكتوب على الصفحة دون التسبب في التلوث للمتغيرات العالمية.
هذا يعمل بشكل جيد للغاية وهو جميل عند إضافة JavaScript إلى صفحة غير مألوفة للغاية.
في الواقع ، تستخدم Yui وأمثلةها المقابلة الكثير من الوظائف المجهولة ، ومكتبات JavaScript الأخرى تستخدم أيضًا الكثير منها.
حجر الزاوية في البرمجة الوظيفية في جافا سكريبت.
للحصول على التفاصيل ، يرجى الاطلاع على "كتابة JavaScript الجميلة مع تقنية البرمجة الوظيفية" و "دليل البرمجة الوظيفية JavaScript".
التفسير التفصيلي أعلاه لاستخدام ومزايا وعيوب الوظائف المجهولة في JavaScript هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.