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

السؤال

نشر (معدل)

كيف يستطيع ال forEach استدعاء نفسه (ال فنكشن الذي بداخله و كيف تم تحديد ما ذا يفعل البراميتر) من غير ما استدعيه انا بنفسي مثل ال function  العاديه 

مثال 

let cars = ["ford" , "toyota" , "dodge" , "range rover"]; 

// simpel function 

function simple_func(newDate){
  console.log(`this is the date today ${newDate}`) ; 
}
simple_func(Date())
// --------
console.log("------------------");
// --------
// ال for  العاديه

for(let i = 0 ; i <= cars.length-1 ; i++){
  console.log(`this is my cars 0-0> ${cars[i]}`)
}

// --------
console.log("------------------");
// --------

// ال forEach 

cars.forEach(function(my_cars){
  console.log(`this is my cars 0-0>${my_cars}`)
  // لماذا لا يجب استدعاء الفنكشن
});
// --------
console.log("------------------");
// --------

 

تم التعديل في بواسطة Mohammmed Mahmoud

Recommended Posts

  • 0
نشر

forEach تأخذ معامل من نوع دالة عكسية او ما يسمى callback function .

والدالة العكسية هى دالة يتم ارسالها كمعامل لدالة اخري تقوم بإستخدامها .

لفهم الدالة العكسية يجب علينا ان نفهم كيفية إنشائها وإستخدامها وهذا المثال التالى يوضح هذا .

function myCallback(result){  // هنا قمنا بإنشاء دالة عادية ولكن يمكن أستخدامها كدالة عكسية 
  console.log(result);
}   

function sum(num1, num2, callback) {
  let result = num1 + num2;
  callback(result); // لاحظ هنا قمنا بإستدعاء الدالة العكسية المرسلة كمعامل
}

sum(5, 5, myCallback); // لاحظ هنا قمنا بارسال دالة كمعامل ثالث لدالة sum

كما هو موضح بالكود قمنا بإنشاء دالة عادية تسمى myCallback تاخذ معامل وتقوم بطباعته .

ودالة sum تاخذ ثلاث معاملات الاول والثانى رقم نقوم بجمعهم والثالث هو دالة عكسية نقوم باستدعائها بداخلها.

إذا نظرت إلى اخر سطر فى الكود قمنا بارسال رقمين ودالة myCallback و ستجد انه يتم طباعة النتيجة مع اننا لا نقوم بطباعة النتيجة بداخل الدالة sum  بل الدالة myCallback هى ما تقوم بالطباعة.

 

وكذلك أيضا forEach ترسل لها دالة وهى تقوم بتنفيذها.

لنوضح تقريبا كيفية عملها.

forEach(callback){
  // some code 
  callback(element,index,array);
}

وهذا مثال بسيط عن كيفية عمل forEach فهى تقوم باخذ الدالة العكسية المرسلة لها وتقوم ببعض الامور ثم تقوم باستدعائها وما ينفذ هو ما قمت بارساله لها .

وتحديد المعامل هو امر قامت بتخصيصيه forEach فاول معامل هو العنصر الحالى فى ال array و ثانى معامل هو ترتيب العنصر فى ال array وثالث معامل هو ال array كامل.

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...