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

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

להלן השיטות בשרשרת האב טיפוס של הפונקציה:
- Function.prototype.apply ()
- Function.prototype.bind ()
- Function.prototype.call ()
- Function.prototype.isGenerator ()
- Function.prototype.toSource ()
- Object.prototype.toSource
- Function.prototype.toString ()
- Object.prototype.toString
אנחנו מודאגים משלושת הראשונים, אז בואו נתחיל.
להגיש מועמדות ?

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

לַחֲזוֹר
זה מחזיר את תוצאת הפונקציה שמופעלת על ידי זה.
תיאור
להחיל שיטה משמשת המאפשר פונקציה / אובייקט השייך x אובייקט להיקרא ו שהוקצה y אובייקט.
דוגמאות
1.

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

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

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

כעת, כאשר אנו משתמשים ביישום ומשתמשים בפונקציה Math.max (), אנו מקבלים את התוצאה. כידוע, היישום ייקח את כל הערכים בתוך המערך כארגומנטים בודדים ואז תוחל עליהם הפונקציה המקסימלית. זה ייתן לנו את הערך המקסימלי במערך.
דבר מעניין לציין כאן הוא שבמקום זה השתמשנו באפס. מכיוון שהטיעון המסופק הוא מערך המספרים, גם אם זה יוצג הוא יצביע על אותו מערך ונקבל את אותה התוצאה. לכן, במקרים כאלה אנו יכולים להשתמש ב- null במקום זה. זה מראה לנו שהארגומנט הזה בפונקציה להחיל הוא ארגומנט אופציונלי.
שִׂיחָה

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

לַחֲזוֹר
התוצאה של קריאת הפונקציה עם this
הערך והארגומנטים שצוינו .
תיאור
שיחת השיטה משמשת המאפשר פונקציה / אובייקט השייך x אובייקט להיקרא ו שהוקצה y אובייקט.
דוגמאות
1.

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

בקטע הקוד לעיל הגדרנו פונקציה הנקראת שינה. הוא מורכב מתשובת מערך המורכבת מאלמנטים המתייחסים למאפיינים באמצעות מילת המפתח הזו . הם מוגדרים באובייקט נפרד מחוץ לפונקציה.
שנת הפונקציה נקראת עם האובייקט obj כטיעון. כפי שאנו רואים, את המאפיינים של obj מוגדרים this.animal ו this.sleepDuration, בהתאמה, ואנחנו מקבלים את המשפט מלא כפלט.
נקשר➰

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

לַחֲזוֹר
Bind מחזיר עותק של הפונקציה עם המסופק זה והארגומנטים.
תיאור
לאגד הפונקציה היא הרבה כמו שיחת הפונקציה, עם ההבדל העיקרי הוא כי תשואות לאגד פונקציה חדשה בעוד שיחה לא.
על פי מפרט ECMAScript 5, הפונקציה המוחזרת באמצעות bind היא סוג מיוחד של אובייקט פונקציה אקזוטי (כפי שהם מכנים זאת) הנקרא פונקציית Bound (BF) . ה- BF עוטף את אובייקט הפונקציה המקורי. קריאה ל- BF מפעילה את הפונקציה העטופה בו.
דוגמאות
1.

בקטע הקוד לעיל הגדרנו משתנה x ואובייקט שנקרא מודול. הוא מכיל גם מאפיין הנקרא x ומאפיין אחר שערכו המקביל הוא פונקציה המחזירה את הערך של x .
כאשר נקראת הפונקציה getX היא מחזירה את ערכי ה- x המוגדרים בתוך האובייקט ולא ה- x בהיקף הגלובלי.
משתנה אחר מוכרז בהיקף הגלובלי המכנה את פונקציית getX מאובייקט המודול . אך מכיוון שהמשתנה נמצא בהיקף הגלובלי, זה ב- getX מצביע על ה- x הגלובלי ומכאן 9 מוחזר.
מוגדר משתנה נוסף המכנה את הפונקציה הקודמת אך הפעם קושר את הפונקציה האמורה עם אובייקט המודול . כריכה זו מחזירה את הערך של x בתוך האובייקט. בגלל הכריכה, זה בפונקציה מצביע על הערך של x באובייקט ולא על ה- x הגלובלי . לפיכך אנו מקבלים 81 כתפוקה
סיכום
כעת, לאחר שלמדנו את היסודות אודות השיטות, אתה עדיין עלול להיות מבולבל מעט מדוע ישנן 3 פונקציות שונות שעושות כמעט את אותו הדבר. כדי להבהיר מושג זה, עליכם להתאמן במצבים ותרחישים שונים כדי שתוכלו ללמוד בצורה יסודית יותר היכן ואיך ניתן להשתמש בהם. הם בטוח יהפכו את הקוד שלך לנקי וחזק יותר.
אם אהבתם את המאמר הזה, אנא מחאו כפיים? ותעקוב? לעוד.
