回调函数中的实例变量
问题描述:
如何将容器变量传递给回调函数geomapLoaded?回调函数中的实例变量
MyMap = Class.create({
initialize: function(container) {
this.container = container;
google.load('visualization', '1', {'packages': ['geomap'], 'callback' : this.geomapLoaded});
},
geomapLoaded: function() {
this.map = new google.visualization.GeoMap(this.container);
}
}
我在geomapLoaded方法(我正在使用原型框架)中获取this.container undefined。
答
像@David在评论中说,你应该可以使用闭包来解决这个问题。如果您使用匿名功能而不是geomapLoaded
,那么希望这会起作用:
MyMap = Class.create({
initialize: function(container) {
this.container = container;
// Create a reference to this so we can use
// it in our callback function
var that = this;
google.load('visualization',
'1',
{
'packages': ['geomap'],
'callback' : function() {
that.map = new google.visualization.GeoMap(that.container);
}
}
);
}
}
什么是容器? – stef 2011-03-18 06:28:02
也许[闭包](http://stackoverflow.com/questions/111102/how-do-javascript-closures-work)可以帮助你。 – David 2011-03-18 06:36:42