اذهب إلى المحتوى
  • 0

JavaScript Function What is the difference between sayHello and sayHello();

السؤال

نشر

 

//What is the difference between sayHello and sayHello();
function sayHello() {
  return "Hello World";
}

let text = sayHello;

ما الفرق بين 

function sayHello() {
  return "Hello World";
}

let text = sayHello();

 

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله،

sayHello بدون أقواس يخصّص الدالة نفسها (مرجع إليها) للمتغير text، أي أن text أصبح اسما آخر لنفس الدالة، ويمكنك لاحقا استدعاؤها ب text().

أما sayHello() بالأقواس فهو ينفّذ الدالة فورا ويخصّص القيمة المعادة ("Hello World") للمتغير text، فيصبح text مجرد نص وليس دالة.

  • 0
نشر

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

في JavaScript، الدالة هي قيمة كأي قيمة أخرى مثل الأرقام والنصوص، فعندما تكتب let text = sayHello بدون أقواس، فأنت تخزن الدالة نفسها في text، وهذا يعني أن text أصبح مؤشرا يشير إلى نفس الكتلة البرمجية في الذاكرة، ويمكنك تنفيذها لاحقا بكتابة text(). أما عندما تكتب let text = sayHello() بالأقواس، فالمحرك ينفّذ الدالة فورا ويأخذ القيمة التي أرجعتها return وهي "Hello World"، ويخزّنها في text، فيصبح text من نوع string وليس function، ولو حاولت استدعاءه ب text() ستحصل على TypeError لأنك تحاول تنفيذ نص كأنه دالة.

  • 0
نشر

بدون اقواس فانك تضع الدالة في متغير اخر اى يمكن استدعائها بالمتغير الجديد.

اما بالاقواس فانت تستدعيها وتعيد النتيجة لهذا المتغير 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...