![ישן](https://static.fresh.co.il/images/vBulletin/statusicon/post_old.gif)
07-05-2008, 20:09
|
|
|
חבר מתאריך: 25.08.03
הודעות: 9,114
|
|
הכל תלוי כמובן במה אתה רוצה בדיוק לעשות.
אני חושב שהמקרים היחידים בהם תזדקק לדעת את שם האובייקט, יהיו לצורך בדיקת הקוד (debuging), כיון שבתוך הקוד עצמו ממש אין חשיבות לשמות המשתנים והפונקציות, הם רק משמשים את המפתח בשעת הכתיבה לצורך פניה למשתנה, פונקציה או מחלקה הרצויה, כך שגם דרך אחרת שתאפשר לנו פניה לאובייקט הרצוי תפתור את הבעיה ואין לנו צורך לדעת את שם האובייקט (וזה ככל הידוע גם לא אפשרי - לכן אני מיד פונה לדרך החילופית שבהחלט קיימת).
אם כמו שאני מעריך, אתה צריך מצביע לאובייקט לצורך שימושים שונים, תוכל להחזיר את המילה השמורה this שמצביע כידוע על אותו אובייקט עצמו.
קוד לדוגמה:
קוד:
var diver = function()
{
var thisObj = this;
this.draw = function()
{
return thisObj; // Return pointer to main_var object
}
}
var main_var = new diver();
main_var.draw();
השיטה draw תחזיר אותו ערך שיחזיר הביטוי main_var, כיון שמשתנה המחלקה thisObj מכיל בעצם מצביע לאובייקט עצמו, הוא בעצם האובייקט main_var.
קוד:
main_var.draw() === main_var.draw().draw().draw().draw().draw().draw()
שני הביטויים שווים, כיון שכל קריאה לשיטה draw תחזיר שוב מצביע לאובייקט, כך שממנו ניתן שוב לפנות לכל אחת משיטותיו. ההבדל בין הביטויים הוא שהביטוי הארוך יותר יקח זמן ומאשבים רבים יותר.
נערך לאחרונה ע"י ישראל K בתאריך 07-05-2008 בשעה 20:12.
|