הנך נמצא: מדריך מתקדם / שיעור 4 / דף 5
 


המדריך של תאו ל- JavaScript
 


דפים בשיעור זה:
1: JavaScript מתקדם
2: תמונת מפה
3: טעינה מוקדמת א
4: טעינה מוקדמת ב
5: הרפתקת האובייקט
6: יצירת אובייקט אישי
7: חיית מחמד וירטואלית
8: הערכת מחרוזות
9: אובייקטים קשים א
10: אובייקטים קשים ב
11: חזרה על שעור 4
|
|
|
|
|
|
|
|
|
|
|
|

שיעור 4

דף 5: הרפתקת האובייקט

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

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

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

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

פתח חלון קטן
לחץ על הלינק מטה, על מנת לראות כיצד פעולת focus גורמת להבאת החלון הקטן קדימה.
;()little_window.focus

בכל אופן, כאשר אתה מחיל את ()focus לתיבת טקסט, סמן ההקלדה מושם בתוך התיבה.

;()window.document.the_form.the_first_text.focus
;()window.document.the_form.the_second_text.focus

מוזר? JavaScript יודעת כי focus עושה דבר אחד עבור חלון ודבר שונה עבור תיבת טקסט. הרעיון של focus זהה בשני המקרים, ולכן הגיוני לקרוא לפעולה זו באותו השם. אבל, הגיוני גם ש- ()focus עושה שני דברים קצת שונים לשני אובייקטים שונים. רעיון זה שיש מתודה בעלת שם אחד אשר מבצעת דברים שונים עבור אובייקטים שונים קרויה "רב-צורתיות" (polymorphism), העקרון הבסיסי הוא תכנות מוכוון לאובייקטים (object oriented programming).

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

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

משום שאובייקטים הם כל כך שימושיים, JavaScript נותנת לך את היכולת ליצור אוביקטים משלך.

חזור לתחילת הדף

לדף הבא «--

 
       
       
   
 
 

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