reference.
אני לא מומחה JS אבל למיטב ידיעתי, ברגע שאתה משתמש בתוך פונקציה באובייקט שהוא מחוץ ל-scope שלה, היא שומרת אליו reference.
כל הפונקציות מחזיקות reference אל אותו ה-i ולכן כולן מדפיסות את אותו הערך.
אני מניח שאם תוסיף שם בתוך הפונקציה גם קידום של i אז כל קריאה תקדם את i והיות והוא של כולם, כל קריאה לכל פונקציה אחרת עכשיו, תדפיס את הערך החדש שלו. תוכל לנסות את זה בתור ניסוי.