כימוס
חלק מהיחידה תכנות מונחה עצמים במסלול ה-JavaScript של Coddy. שיעור 17 מתוך 56.
כימוס הוא תהליך של שילוב נתונים בתוך מחלקה ביחידה אחת.
כך אפשר להגביל את הגישה הישירה לנתוני המחלקה, ובסופו של דבר למנוע שינויים מקריים בנתונים.
בואו נראה את הכימוס בפעולה באמצעות דוגמה פשוטה. צרו אובייקט בסיסי עם מאפיינים ציבוריים:
const user = {
name: "John",
email: "john@example.com"
};כל אחד יכול לגשת ישירות למאפיינים האלה ולשנות אותם:
user.name = "Jane"; // קל לשנות מבחוץ
console.log(user.email); // קל לגשת מבחוץגישה שמבוססת יותר על כימוס משתמשת בסגירות כדי להסתיר נתונים:
function createUser(name, email) {
// המשתנים האלה פרטיים (מאוגדים)
let userName = name;
let userEmail = email;
// החזר אובייקט עם מתודות לאינטראקציה עם הנתונים הפרטיים
return {
getName: function() {
return userName;
},
getEmail: function() {
return userEmail;
},
setName: function(newName) {
userName = newName;
}
};
}
const encapsulatedUser = createUser("John", "john@example.com");כעת, כדי לעבוד עם הנתונים:
console.log(encapsulatedUser.getName()); // "John"
encapsulatedUser.setName("Jane");
console.log(encapsulatedUser.getName()); // "Jane"
// לא ניתן לגשת ישירות לנתונים
console.log(encapsulatedUser.userName); // undefinedאתגר
ניתן לך קוד שמשתמש בכימוס כדי להגן על נתוני המשתמש. המשימה שלך היא להוסיף מתודה getAge() כדי לגשת לגיל.
הבדיקות יוודאו:
- קיימת מתודה
getAge() - היא מחזירה את הגיל הנכון
- פרטי הגיל נשארים פרטיים
פלט צפוי:
john_doe
25
נסו בעצמכם
import { createUser } from './createUser.js';
// קוד בדיקה - אין לשנות
const user = createUser("john_doe", 25);
console.log(user.getUsername()); // אמור להדפיס "john_doe"
console.log(user.getAge()); // אמור להדפיס 25
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנות מונחה עצמים
1אובייקטים ומילת המפתח this
סקירה מהירה: אובייקטיםהוספת מתודות לאובייקטיםהבנת מילת המפתח thisפונקציות בנאימילת המפתח newאתגר סיכום7הורשה ומילת המפתח extends
הורשההקשר "הוא-סוג-של"מילת המפתח extendsהמתודה super()הורשת מאפיינים ומתודותאתגר סיכום8ארגון קוד OOP
ארגון מחלקות במודוליםתרגלו בעצמכם: קומפיילר JavaScript אונליין