שאלה ב javascript

omryk

New member
שאלה ב javascript

הקוד שיש בתמונה מחזיר לי תמיד 10 מה הסיבה ?
 

selalerer

New member
reference.

אני לא מומחה JS אבל למיטב ידיעתי, ברגע שאתה משתמש בתוך פונקציה באובייקט שהוא מחוץ ל-scope שלה, היא שומרת אליו reference.

כל הפונקציות מחזיקות reference אל אותו ה-i ולכן כולן מדפיסות את אותו הערך.

אני מניח שאם תוסיף שם בתוך הפונקציה גם קידום של i אז כל קריאה תקדם את i והיות והוא של כולם, כל קריאה לכל פונקציה אחרת עכשיו, תדפיס את הערך החדש שלו. תוכל לנסות את זה בתור ניסוי.
 

arik23m

New member
ככה זה באונליין

- קיבלת גירסה אחרונה של הקוד

התשובה נמצאת בהערות באדום בתחתית הקוד :
ההערה השניה למען הדיוק:

Line 11: result = function() { return i;}; --- Don't make functions within a loop.
 

nocgod

New member
סגור

עד כמה שאני מבין סגור זה בעצם לקיחת כל הנתונים אותה צריכה הפונקציה לתוך הסביבה שלה...
 
למעלה