Yehia Amin2 نشر 23 مايو أرسل تقرير نشر 23 مايو //What is the difference between sayHello and sayHello(); function sayHello() { return "Hello World"; } let text = sayHello; ما الفرق بين function sayHello() { return "Hello World"; } let text = sayHello(); 3 اقتباس
0 عبد الوهاب بومعراف نشر 23 مايو أرسل تقرير نشر 23 مايو وعليكم السلام ورحمة الله، sayHello بدون أقواس يخصّص الدالة نفسها (مرجع إليها) للمتغير text، أي أن text أصبح اسما آخر لنفس الدالة، ويمكنك لاحقا استدعاؤها ب text(). أما sayHello() بالأقواس فهو ينفّذ الدالة فورا ويخصّص القيمة المعادة ("Hello World") للمتغير text، فيصبح text مجرد نص وليس دالة. 1 اقتباس
0 ياسر مسكين نشر 23 مايو أرسل تقرير نشر 23 مايو وعليكم السلام ورحمة الله تعالى وبركاته، في JavaScript، الدالة هي قيمة كأي قيمة أخرى مثل الأرقام والنصوص، فعندما تكتب let text = sayHello بدون أقواس، فأنت تخزن الدالة نفسها في text، وهذا يعني أن text أصبح مؤشرا يشير إلى نفس الكتلة البرمجية في الذاكرة، ويمكنك تنفيذها لاحقا بكتابة text(). أما عندما تكتب let text = sayHello() بالأقواس، فالمحرك ينفّذ الدالة فورا ويأخذ القيمة التي أرجعتها return وهي "Hello World"، ويخزّنها في text، فيصبح text من نوع string وليس function، ولو حاولت استدعاءه ب text() ستحصل على TypeError لأنك تحاول تنفيذ نص كأنه دالة. 1 اقتباس
0 محمد عاطف25 نشر 23 مايو أرسل تقرير نشر 23 مايو بدون اقواس فانك تضع الدالة في متغير اخر اى يمكن استدعائها بالمتغير الجديد. اما بالاقواس فانت تستدعيها وتعيد النتيجة لهذا المتغير 1 اقتباس
0 عبدالباسط ابراهيم نشر 3 يونيو أرسل تقرير نشر 3 يونيو بالإضافة للتعليقات السابقة فالفرق الجوهري يظهر بشكل عملي عند التعامل مع الأحداث (Events) أو (Timers)، مثلاً بدون أقواس sayHello: نستخدمها عندما نريد للمتصفح أو للنظام أن يستدعي الدالة لاحقاً. في بيئات مثل React أو حتى JavaScript ، نكتب button.addEventListener('click', sayHello) أو onClick={sayHello}. نحن هنا نسلم "عنوان" الدالة ليتم استدعاؤها فقط عند حدوث النقر. أيضاً في ال Higher-Order Functions والقدرة على كتابة let text = sayHello هي حجر الأساس للبرمجة الوظيفية في JavaScript. حيث يسمح لنا بتمرير الدوال كمعاملات (Arguments) لدوال أخرى دون تنفيذها مسبقاً، مثل التوابع الخاصة بالمصفوفات: // هنا نمرر مرجع الدالة ليتم تنفيذها تباعاً على كل عنصر [1, 2, 3].map(sayHello); اقتباس
السؤال
Yehia Amin2
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.