פונקציות להתקשרות חוזרות ב- JavaScript

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

הגדרת Callback

כדי ליישם פונקציית התקשרות חוזרת, קוד JavaScript בעמוד צריך להגדיר תחילה את הפונקציה. קוד הדוגמה הבא מגדיר פונקציה ושומר אליה התייחסות משתנה: var callbackDefinition = פונקציה (numParam) {alert (numParam); };

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

פרמטר להתקשרות חוזרת

ברגע שלסקריפט יש פונקציה המוגדרת כמשתנה, הוא יכול להעביר משתנה זה כפרמטר לפונקציה אחרת. קוד הדוגמה הבא מדגים את הטכניקה: mainFunction (10, callbackDefinition);

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

ביצוע פונקציות

לאחר העברתו לפונקציה הראשית, ניתן לבצע פונקציית התקשרות חוזרת. קוד הדוגמה הבא מדגים: פונקציה mainFunction (myNum, callbackFn) {alert (myNum); callbackFn (myNum * 2); }

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

פונקציית שיחה

ברגע שלדף מוגדרת פונקציה, כולל התקשרות חוזרת, הוא יכול לבצע קוד זה. לעתים קרובות, מפתחים מורים לדפדפן להאזין לאירוע משתמש, ולהפעיל פונקציות כאשר זה קורה. לדוגמה, קוד ה- HTML הבא מכנה פונקציה: להלן קטע הניתן ללחיצה

אם הפונקציה שצוינה כפרמטר מכילה את הגדרת המשתנה להתקשרות חוזרת ואת הקריאה לפונקציה הראשית, הדבר ייצור את אפקט החזרה, כדלקמן: פונקציה doCallback () {var callFn = פונקציה (numParam) {התרעה (numParam); }; mainFunction (10, callFn); }

ברגע שהפונקציה הראשית מבצעת את תוכן הקוד שלה, היא קוראת לפונקציית ההתקשרות.