我正在爲Google地圖v2創建控件。在創建我的控制權的同時,我發現了一個設計挑戰,並希望找到合適的解決方案。這是貨物。Javascript對象繼承
自定義的Google控件繼承自GControl;
myControl.prototype = new GControl();
接下來我需要重載初始值設定項,所以在這裏。
myControl.prototype.initilize = function (map) {
//do some work and return stuff
};
現在在我的自定義控件initlize功能創建其中,使用GEVENT類,我訂閱各種事件的一對夫婦的元素。爲了使我的回調函數可管理,我將它們包含在控件原型中。
myControl.prototype.onEvent = function(e){
//do some work;
//modify the members of the current myControl instance
};
在我的回調函數「onEvent」中,我想修改我的控件中的成員。 從函數訪問我的控件的最佳方式是什麼?不能使用關鍵字「this」,因爲這是對被點擊元素的引用,在我的情況下是div。我不能通過原型訪問成員,因爲我需要一個特定的對象實例。我考慮的唯一可行解決方案是在我的一個腳本中全局創建我的控件。這是最好的方法嗎?
爲什麼'this'指的是div?如果該函數在myControl實例上調用,那麼'this'將引用相關實例。 – 2010-02-01 07:07:50
啊,但GEvent調用onEvent關閉myControl實例嗎?這聽起來像是將它直接存儲在DOM對象的事件處理程序中。 – Bruce 2010-02-01 07:11:41