Я пишу небольшое приложение в JavaScript, и у меня есть класс и прототип метода.setInterval создает новый объект
function Canvas(_canvasId, _page) {
this.c = document.getElementById(_canvasId);
this.ctx = this.c.getContext("2d");
this.page = _page;
};
Canvas.prototype.draw = function() {
console.log(this);
switch (this.page) {
case "_CitySystem":
//this.renderCitySystem();
break;
}
};
Я затем создать новый экземпляр и вызвать метод рисования:
$(document).ready(function() {
var g = new Canvas("cCity", "_CitySystem");
setInterval(g.draw, 1000);
});
Проблема, которую я имею что когда я
console.log(this);
Я ожидал, что это выход на Свойства объекта холста, вместо этого я получаю свойства объекта окна:
Однако это я
d.draw();
Без setInterval, консольный вывод, что я ожидаю, что это будет, так и в обратном вызове в setInterval, конечный результат другой объект, как я могу сказать setInterval что я хочу использовать свойства объекта того, что я прошел?
'g.draw.bind (г)' также работает –
Просто есть некоторые избыточность. –