私は最初にそこにいたニワトリまたは卵を持っています... 問題。
AlarmOverlay は OverlayView から派生します。
コンストラクタ関数を呼び出して AlarmOverlay を作成する前に、OverlayView から継承するために「google」オブジェクトがすでに必要です。しかし、Googleオブジェクトはコンストラクターで渡されるだけです...
このAlarmOverlayクラスを使用して単体テストを作成するため、requirejsでGoogleオブジェクトを挿入できないため、http呼び出しを回避する必要があります...私は自分のGoogle偽物オブジェクトを渡しています。
新しい google.maps.OverlayView() 呼び出しが完了したときに google オブジェクトが未定義にならないように、コードを書き直すにはどうすればよいですか?
define(['jquery','inject google here is not allowed because of the unit test'], function($) {
AlarmOverlay.prototype = new google.maps.OverlayView();
function AlarmOverlay(bounds, alarmNumber, alarmCssClass , google) {
this.google = google;
}
AlarmOverlay.prototype.createMapOnOverlay = function (map) {
};
AlarmOverlay.prototype.onAdd = function() {
};
AlarmOverlay.prototype.draw = function() {
};
return AlarmOverlay;
});