2013-08-31 36 views
0

我有增加兩個功能,一是它調用其它有點困難,到google.maps.Map對象的Javascript功能添加到google.maps.Map

google.maps.Map.prototype.addMarkerFromJson = function() { 
    alert("hi"); 
} 

google.maps.Map.prototype.getPictureDataFromJson = function (jsonObj) { 
    this.addMarkerFromJson(); 
} 

此代碼拋出一個錯誤:

Uncaught TypeError: Object #<Object> has no method 'addMarkerFromJson' 

這本身就是令人費解,是什麼讓我更糊塗的時候我換了名字:

google.maps.Map.prototype.anotherTestFunction = function() { 
    alert("hi"); 
} 

google.maps.Map.prototype.aTestFunction = function (jsonObj) { 
    this.anotherTestFunction(); 
} 

這仍然不起作用(警報不會被解僱),但它也不會在控制檯中引發錯誤?

想知道我在做什麼錯誤,以及這個錯誤的解釋!

編輯:當我再看一遍時,我開始認爲thisthis.addMarkerFromJson();實際上是指函數()定義,而不是我附加到的Map對象?在這種情況下,我將如何去調用其他函數?

回答

0

回答我的問題:

這是我太傻了!我使用mapObject.getPictureDataFromJson()作爲jquery.get()的成功回調函數,所以this引用了調用者(get函數),而不是地圖對象。