الوظائف هي الكائن الأكثر مرونة في JavaScript. هنا نوضح فقط الغرض من وظائفها المجهولة. تشير الوظائف المجهولة إلى الوظائف التي لا تحدد أسماء الوظائف أو المؤشرات. وظائف مجهولة المصدر ذاتيا ليست سوى واحدة منهم. ما يلي يسمى هذه الوظيفة: وظيفة التنفيذ الذاتي.
فيما يلي واحدة من أكثر وظائف التنفيذ الذاتي شيوعًا:
// دالة مجهول التقليدية (function () {Alert ('hello') ؛}) () ؛تأثير تنفيذ هذا الرمز هو الظهور عند إعادة تحميل الصفحة: "مرحبًا"
ما الذي يطالبها بالتنفيذ تلقائيًا؟ ، انظر الرمز التالي
// قم بإزالة الأقواس في الكتابة التقليدية وأضف المشغل ~ ،! ،+،--~ function () {Alert ('hello') ؛} () ؛! function () {Alert ('hello') ؛} () ؛+function () {Alert ('hello') ؛} () ؛-funct () {alert ('hello') ؛} () ؛لا تختلف طرق الكتابة هذه عن الأساليب التقليدية المذكورة أعلاه.
لقد وجدت أن النقطة المشتركة لأساليب الكتابة هذه هي المشغلين. في الواقع ، تنتمي الطريقة التقليدية للأقواس () أيضًا إلى نوع من العملية ، والتي تظهر في: a = b*(c+d).
المشغل + المعلمات التي تم تمريرها إلى توليدها ذاتيا = يتم تنفيذ الوظائف تلقائيا؟ لكن بعض الرموز غير مدعومة أيضًا ، مثل علامة "= ، *، /". لا يزال السبب وراء تنفيذه غامضًا للغاية ، ولا توجد إجابة لائقة على الإنترنت.
ثم اكتشفت ظاهرة سحرية حيث يمكن أن يتم فرض هؤلاء المشغلين بلا حدود. . . . . .
// تسبق الوظيفة برمز محدد يمكن أن يتراكم بلا حدود ... ~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~! ~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~! -~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~! +-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~! ~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~! -~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~! +-~!+-~~~~~~~~~~~~~~~~ !!+!+-~~~~~~~~~~~~~ !!+!+!
البرنامج يعمل بشكل طبيعي !!!!!!
ومع ذلك ، هناك حالتان سيتم فيها الإبلاغ عن الأخطاء
إذا ظهرت ثلاثة أو أكثر من رموز "+" أو "-" على التوالي ، فسيحدث خطأ ؛
إذا ظهرت رموز "+" أو "-" على التوالي وتتبعها رموز أخرى ، فسيحدث خطأ ، مثل "++ ~" ، "-+" ؛
موجه الخطأ: مرجع غير معروف: تعبير جانبي يسار غير صالح في عملية البادئة (بمعنى خطأ التعبير الأيسر)
ثم استخدمت نفس الرمز لحساب متغير ووجدت أنه كان هو نفسه بالضبط. قد يتم توضيح ذلك بالفعل أن عملية JavaScript تطالب بالتنفيذ التلقائي للوظيفة ، أو يمكن فهمها على أنها استدعاء هذه الوظيفة من خلال العمليات!
ليس الأمر أن الوظيفة تنفذ نفسها ، لكن هذه الوظيفة تسمى من خلال العمليات! ، ولكن يتم دعم بعض طرق الحساب فقط!
بالإضافة إلى ذلك ، قد لا تكون وظيفة التنفيذ الذاتي هذه وظيفة مجهولة! عند النظر إلى الكود أعلاه ، قمت بتعريف اسم الوظيفة A في الوظيفة بعد المشغل ، ولم يكن هناك استثناء ، لكنه كان عديمة الفائدة - -! ، لا يمكن استدعاءها بطرق أخرى ، لكنني أعتقد أنه من غير المناسب بعض الشيء لكثير من الناس أن يسميوها وظيفة مجهولة الهوية!
ما سبق هو تحليل موجز لمبدأ JavaScript Self Executing Anonymous Function (function () {}) () قدمت لك من قبل المحرر. آمل أن يكون ذلك مفيدًا للجميع!