מחלקות בJavascript

כמה דברים על מחלקות בJavascript.
ראשית אין מילה שמורה ל"מחלקה" כמו בשפות אחרות. למעשה מגדירים את המחלקה באופן דומה לפונקציה.



<script type="text/javascript">
function CObject(x,y)
{
this.x = x;
this.y = y;
this.calc = calc;
}
function calc()
{
return this.x + this.y;
}
var instance = new CObject(4,5);
alert(instance.calc());

</script>

בעצם ישנה כאן בעיה מהותית. כל פעם שיוצרים מופע של המחלקה הזאת, המחלקה שומרת את כל הפונקציה של calc בפנים וזה בזבזני במקום. במיוחד כשהמשתמשים שונאים שהדפדפן שלהם גוזל כל כך הרבה משאבים.
הפתרון הוא להשתמש במה שנקרא prototype. זה מן הגדרות כלליות שקשורות למחלקה.
כמו שב C++ אנחנו יכולים לייצר מחלקה ולעשות משתנים/פונקציות סטטיות, כך גם בג'אבה סקריפט מסתבר. לכן את איתחול הקבועים של האובייקט/קביעת הפונקציות נעשה מבחוץ באמצעות המילה השמורה prototype באופן הבא:


<script type="text/javascript">
...
CObject.prototype.PI = 3.14;
CObject.prototype.calc = calc;
...
</script>

Post a Comment

Previous Post Next Post