anonymous functions فى جافاسكربت

By mostafa farghaly

السلام عليكم و رحمه الله تعالى وبركاته

ال  anonymous function هى الوظائف المجهوله التى لا تحمل أسماء تدل عليها ، يمكنك رؤيه الوظائف المجهوله فى الكود التالى

document.onclick = function(){
// code here
}
setTimeout(function(){
// code here
},3000);

فى المثال السابق قمت بتسجيل الوظيفه المجهوله تستمع للحدث onclick للوثيقه ، و الكود الذى يليه ينفذ الكود بداخل الوظيفه المجهوله كل 3 ثوانى عن طريق الوظيفه setTimeout .

ليس لهذا السبب قمت بكتابه التدوينه ، و لكن قمت بكتابه التدوينه حتى اعرفكم ال self invoking anonymous function و هى الوظيفه المجهوله التى يتم تنفيذها تلقائيا و هذه هى صيغتها :

(function(){
// code here
})();

ميزه هذه الوظيفه انها ليس لها إسم فلن يتم حذفها او تعديلها او الكتابه عليها بأى حال من الاحوال – الوظائف العاديه يمكن مسحها او التعديل عليها ، ثانيا يتم تنفيذها تلقائيا بمجرد مرور المترجم عليها ،ثالثا جميع المتغيرات بداخلها تعتبر private يعنى لا يمكن الوصول إليها من خارجها و تستخدم هذه الطريقه لحمايه المتغيرات من ال global scope و تغليف ال frameworks إطر العمل لحمايتها من التصادم مع إطار عمل اخر يحتوى على متغيرات بنفس الأسماء ، و لتعريض اى متغير بداخلها عليك إستخدام return كما يوضح الكود التالى :

(function(){
var x = “secret”;
var y = “public”;
return y;
})();
alert(x); // undefined :)
alert(y); // public

الأوسمة:

2 تعليقات إلى “anonymous functions فى جافاسكربت”

  1. احمد يقول:

    درس جميل ,,
    يمكن ايضا وضع input لها

    (function(myVal){
    var x = “secret”;
    var y = myVal;
    return y;
    })("Hi");

  2. mostafa farghaly يقول:

    ممتاز يا أحمد ، يبدو انك فهمت الدرس جيدا :) ، انا سعيد لذك

اترك رد