מהן סגירות ב- JavaScript וכיצד הן פועלות?



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

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

מבוא לסגירות ב- JavaScript

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





קודן - סגירות ב- javascript - edureka

def __init__ בפייתון

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



דוגמא:

פונקציה foo () {var x = 10 function inner () {return x} return inner} var get_func_inner = foo () console.log (get_func_inner ()) console.log (get_func_inner ()) console.log (get_func_inner ())

תְפוּקָה:

10
10
10



כאן תוכל לגשת ל מִשְׁתַנֶה x שמוגדר בפונקציה foo () דרך פונקציה פנימית () כמאוחר יותר משמר את שרשרת ההיקף של הפונקציה הסוגרת בזמן ביצוע הפונקציה הסוגרת. לפיכך, הפונקציה הפנימית יודעת את הערך של x דרך שרשרת ההיקף שלה. כך תוכלו להשתמש בסגירות ב- JavaScript.

סגירות מעשיות

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

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

דוגמא:

פונקציה makeSizer (גודל) {return function () {document.body.style.fontSize = size + 'px'}} var size12 = makeSizer (12) var size14 = makeSizer (14) var size16 = makeSizer (16)

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

שרשרת היקף

לסגירות ב- JavaScript יש שלושה טווחים כגון:

  • היקף מקומי
  • היקף פונקציות חיצוניות
  • ראיה גלובלית

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

// היקף גלובלי var x = 10 סכום פונקציה (a) {פונקציית החזרה (ב) {פונקציית החזרה (c) {// פונקציית החזרת פונקציות חיצוניות (d) {// היקף מקומי החזר a + b + c + d + x}}}} console.log (סכום (1) (2) (3) (4)) // יומן 20

ניתן לכתוב זאת גם ללא פונקציות אנונימיות:

// היקף גלובלי var x = 10 פונקציית סכום (a) {פונקציית החזרה סכום + d + x}}}} var s = sum (1) var s1 = s (2) var s2 = s1 (3) var s3 = s2 (4) console.log (s3) // log 20

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

סגירה בתוך לולאה

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

דוגמא:

פונקציה חיצונית () {var arr = [] var i עבור (i = 0 i<3 i++) { // storing anonymus function arr[i] = function () { return i } } // returning the array. return arr } var get_arr = outer() console.log(get_arr[0]()) console.log(get_arr[1]()) console.log(get_arr[2]())

תְפוּקָה:

3
3
3
3

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

עכשיו שאתה יודע על סגירות ב- JavaScript, עיין ב מאת אדוריקה. הדרכת הסמכת פיתוח אתרים תעזור לך ללמוד כיצד ליצור אתרים מרשימים באמצעות HTML5, CSS3, Twitter Bootstrap 3, jQuery ו- Google APIs ולפרוס אותו לשירות אחסון פשוט של אמזון (S3).

יש לך שאלה עבורנו? אנא הזכיר זאת בפרק ההערות של 'סגירות ב- JavaScript' ונחזור אליך.