Здравствуйте, есть код:
var Car = function (x, y) {
this.x = x;
this.y = y;
};
Car.prototype.draw = function () {
var carHtml = '<img src="http://nostarch.com/images/car.png">';
this.carElement = $(carHtml);
this.carElement.css({
position: "absolute",
left: this.x,
top: this.y,
});
$("body").append(this.carElement);
};
Car.prototype.moveRight = function(dx) {
this.x += 5;
if (this.x < dx) {
setTimeout(function () {
return this.moveRight(dx);
}, 30);
} else {
this.x = dx;
}
this.carElement.css({
left: this.x,
top: this.y
});
}
var nissan = new Car(100, 200);
nissan.draw();
nissan.moveRight(500);
Он создаёт две машинки на координатах указанных в аргументах конструктора Car. Я создал функцию Car.prototype.moveRight, которая должна двигать код на 5 пикселей вправо. Мне нужно сделать это плавно, используя setInterval, но у меня не получается и выходит ошибка: Uncaught TypeError: this.moveRight is not a function
at oop.html:37