我正在为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