ABA


"שאלה ב JS ואובייקטים"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #21367 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 21367
תפתתפת לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 10.6.03
13866 הודעות, 3 פידבק
   15:20   02.08.15   
אל הפורום  
  שאלה ב JS ואובייקטים  
 
   אהלן חבר'ה,
יש לי שאלה שהטרידה את מנוחתי זמן לא קצר.
עד היום הייתי יוצר אובייקט ב JS באופן הבא :
function myObj(fName,lName)
}
this.firstName = fName;
this.lastName = lName
{

וכאשר הייתי רוצה ליצור מופע חדש הייתי עושה ככה :


var n1 = new myObj('israel','cohen')

לעומת זאת, ראיתי אפשרות ליצור אובייקט במה שמוגדר 'ליטרלר', באופן הבא :


var myObj =
{
firstName : fName;
lastname : lName
}

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

קופון 15% הנחה ל myprotein
https://www.myprotein.co.il/referrals.list?applyCode=ORON-R4


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  הסבר gge 02.08.15 15:54 1
  בגדול Webstorm 02.08.15 15:54 2

       
gge
חבר מתאריך 3.7.06
684 הודעות
   15:54   02.08.15   
אל הפורום  
  1. הסבר  
בתגובה להודעה מספר 0
 
   פה יצרת מחלקה בשם myObj

function myObj(fName,lName)
}
this.firstName = fName;
this.lastName = lName
{

פה כבר יצרת אובייקט בשם myObj
והשמת לו את הנתונים (הלא חוקיים כי לא קיימים שמות משתנים כאלה)
firstName : fName;
lastname : lName

הדרך הנכונה ליצור אובייקט כזה
var myObj = {
firstName : "freddy";
lastname : "cohen"
}

console.log(myObj);
// Object {firstName: "freddy", lastName: "cohen"}

מקווה שעזרתי


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Webstorm
חבר מתאריך 2.8.15
65 הודעות
   15:54   02.08.15   
אל הפורום  
  2. בגדול  
בתגובה להודעה מספר 0
 
   כשאתה כותב new אתה בעצם יוצר אובייקט חדש ריק שאליו מוכנסות מתודות ומאפיינים שמגיעים מהפונקציה שבאה אחריו (במקרה שלך myObj).
אם אתה יודע מה זה פרוטוטייפ , אז גם הפרוטוטייפ של האובייקט החדש יהיה Myobj ׁ(בJS כל דבר זה אובייקט , גם פונקציות)

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

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net