Javascript 谷歌地图API,回调是一个对象的方法

Javascript 谷歌地图API,回调是一个对象的方法,javascript,google-maps,callback,cross-domain,Javascript,Google Maps,Callback,Cross Domain,我已经删除了这里的每一行代码,但以下代码除外: show = foo.show = function () { alert("test"); }; 现在,如果我以以下方式运行maps API,它将起作用: foo.display = function() { this.elem = document.getElementById('fooBox'); var script = document.createElement("script"); script.

我已经删除了这里的每一行代码,但以下代码除外:

show = foo.show = function () {
    alert("test");
};
现在,如果我以以下方式运行maps API,它将起作用:

foo.display = function() {
    this.elem = document.getElementById('fooBox');

    var script  = document.createElement("script");
    script.type = "text/javascript";
    script.src  = "http://maps.google.com/maps/api/js?sensor=false&callback=show";
    document.body.appendChild(script);
};
但是当我试图通过
callback=foo.show
调用它时,它失败了:

foo.display = function() {
    this.elem = document.getElementById('fooBox');

    var script  = document.createElement("script");
    script.type = "text/javascript";
    script.src  = "http://maps.google.com/maps/api/js?sensor=false&callback=foo.show";
    document.body.appendChild(script);
};
我能从WebKit inspector中得到的唯一错误是
uncaughtTypeError:无法调用未定义的方法“show”


我是谷歌地图API的新手,但我会认为方法无关紧要?我肯定在什么地方见过。我做错了什么?

是否将
foo
声明为
var
?如果是这样,则无法访问全局范围。添加一个声明,如:

foo = {};

foo.show = function () {
   ...
};

...
它很可能会纠正这个问题。WebKit的响应表明变量
foo
在调用
show()
时不在范围内