JS Callbacks
التاريخ
الدروس
المستوى
اللغة
المشاهدات
المواضيع
الشروحات chevron_left JS Callbacks chevron_left JavaScript
JS Callbacks
</> JS Callbacks
callback وهي عبارة عن طريقة نقوم خلالها بأنشاء دالة يتم تمريرها بداخل دالة اخري وهذه الطريقة تسمح لنا بأنشاء دالة تقوم باستدعاء دالة اخري
تقوم JavaScript بتنفيذ التعليمات البرمجية بالتتابع بترتيب من أعلى إلى أسفل. ومع ذلك ، هناك بعض الحالات التي يتم فيها تشغيل الكود (أو يجب تشغيله) بعد حدوث شيء آخر وليس بشكل تسلسلي. وهذا ما يسمى بالبرمجة غير المتزامنة. تتأكد عمليات الاستدعاء من أن الوظيفة لن تعمل قبل اكتمال المهمة ولكنها ستعمل مباشرة بعد اكتمال المهمة. يساعدنا في تطوير كود JavaScript غير متزامن ويبقينا في مأمن من المشاكل والأخطاء. في JavaScript ، تتمثل طريقة إنشاء وظيفة رد الاتصال في تمريرها كمعامل إلى وظيفة أخرى ، ثم إعادة استدعائها مباشرة بعد حدوث شيء ما أو اكتمال بعض المهام. دعونا نرى كيف ...
</> Function Sequence
في الجافا سكريبت يتم تنفيذ الدوال بطريقة متتالية حسب اماكن استدعائها وليس حسب اماكن انشائها
function myFirst() { myDisplayer("Hello"); } function mySecond() { myDisplayer("Goodbye"); } myFirst(); mySecond();
في المثال التالي علي الرغم من ان الدالة ( )myFirst تم انشائها قبل الدالة ( )mySecond الي ان الكود الموجود بداخل الدالة ( )mySecond لأنها هي من تم استدعائها اولا وليست دالة ( )myFirst
function myFirst() { myDisplayer("Hello"); } function mySecond() { myDisplayer("Goodbye"); } mySecond(); myFirst();
</> Sequence Control
- أحيانا تريد التحكم اكثر في تحديد الحالة التي سوف يتم خلالها تنفيذ الدالة
- ولنفترض مثلا انك تريد اجراء عملية حسابية معينة وبعد الانتهاء من حسابها تقوم بتنفيذ دالة اخري تقوم بطباعة الناتج
في المثال التالي قمنا بأنشاء دالة تقوم بأجراء هذه العملية الحسابية وهي "myCalculator " وتقوم بحفظ النتيجة وبعد ذلك تقوم الدالة "myDisplayer " بطباعة هذه النتيجة
Example
function myDisplayer(some) { document.getElementById("demo").innerHTML = some; } function myCalculator(num1, num2) { let sum = num1 + num2; return sum; } let result = myCalculator(5, 5); myDisplayer(result);
وبدلا من الطريقة السابقة التي تستلزم استدعاء اثنين من الدوال يمكنك استخدام ال callback في تمرير الدالة التي تقوم بطباعة النتيجة "myDisplayer " الي الدالة الاخري التي تقوم بأجراء العملية الحسابية "myCalculator " ك parameter
function myDisplayer(some) { document.getElementById("demo").innerHTML = some; } function myCalculator(num1, num2) { let sum = num1 + num2; myDisplayer(sum); } myCalculator(5, 5);
</> JavaScript Callbacks
callback : هي عبارة عن دالة يتم تمريرها ك argument الي دالة اخري
باستخدام ال callback يمكنك استدعاء الدالة التي تقوم بأجراء العملية الحسابية وبعد الانتهاء منها تقوم بأستدعاء دالة اخري callback بعد انتهاء العملية الحسابية في المثال التالي قمنا بتمرير الدالة ( )myDisplayer ك callback الي الدالة ( )myCalculator
function myDisplayer(some) { document.getElementById("demo").innerHTML = some; } function myCalculator(num1, num2, myCallback) { let sum = num1 + num2; myCallback(sum); } myCalculator(5, 5, myDisplayer);
تذكر : عندما تقوم باستخدام دالة معينة ك callback وتمريرها الي داله اخري ك argument يجب ان تقوم بكتابة اسم الدالة بدون اقواس
- طريقة خاطئة "(( )5,5myDiplayer)myCalculator "
- الطريقة الصحيحة "(5,5myDiplayer)myCalculator "