السلام عليكم و رحمه الله تعالى وبركاته
ال 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
الأوسمة: javascript
03/12/2008 عند 9:24 م |
درس جميل ,,
يمكن ايضا وضع input لها
(function(myVal){
var x = “secret”;
var y = myVal;
return y;
})("Hi");
03/12/2008 عند 10:13 م |
ممتاز يا أحمد ، يبدو انك فهمت الدرس جيدا
، انا سعيد لذك
31/03/2010 عند 7:42 م |
[...] وسبب ذلك هو لتجنب تضارب أو تصادم المتغيرات أو الدوال الموجودة في مكتبة JQuery أو أي مكتبة أخرى مع المتغيرات والدوال التي ستكتبها بحيث إذا كان هناك متغير بإسم A في أحد المكتبات أو الإضافات أو في ملف javascript خاص تستطيع كتابة متغير خاص بك بنفس الإسم بشرط أن يكون مغطى بهذه الطريقة، وهناك تدوينة تجد فيها شرح حول self-invoking anonymous function. [...]