もう一方を呼び出す 2 つの関数を 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();
}
これはまだ機能しません (アラートは発生しません) が、コンソールでもエラーは発生しませんか?
ここで私が間違っていることと、奇妙さの説明を正確に知りたいです!
編集:もう一度見てみると、this
in はthis.addMarkerFromJson();
実際には function() 定義を参照しており、それをアタッチしている Map オブジェクトを参照していないと思い始めていますか? どの場合、他の関数を呼び出すにはどうすればよいですか?