Нужно с помощью setInterval и метода moveRight сделать анимацию движения машинки nissan (которая нижняя на картинке) вправо. Решил что написать будет правильно:
setInterval(nissan.moveRight, 2000);
Не понимаю в чем проблема. Пробовал переписать метод moveRight с заменой this именно на nissan, все работало.
Car.prototype.moveRight = function () {
nissan.x +=5;
nissan.carElement.css({
left: nissan.x,
top: nissan.y
});
};
Но нужно рабочую версию с this. Надеюсь на вашу помощь.
Ошибка: Uncaught TypeError: Cannot read property 'css' of undefined at Car.moveRight (попробуйте1.html:32)
Код взят из учебника (Morgan_N._JavaScript_dlya_detej._Samouchitel_po_programmirovaniyu).

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Гонки</title>
</head>
<body>
<script src="../jquery-3.2.1.js"></script>
<script>
var Car = function (x,y) {
this.x = x;
this.y = y;
};
Car.prototype.draw = function () {
var carHtml = '<img src="car.png">';
this.carElement = $(carHtml);
this.carElement.css({
position: "absolute",
left: this.x,
top: this.y
});
$("body").append(this.carElement);
};
Car.prototype.moveRight = function () {
this.x +=5;
this.carElement.css({
left: this.x,
top: this.y
});
};
var tesla = new Car(20, 20);
var nissan = new Car(100, 200);
tesla.draw();
nissan.draw();
setInterval(nissan.moveRight, 2000);
</script>
</body>
</html>
setInterval(() => {nissan.moveRight();}, 100);– Алексей Шиманский Oct 07 '17 at 11:00setInterval(function(){nissan.moveRight();}, 100);– Алексей Шиманский Oct 07 '17 at 11:07