В вашем коде есть несколько синтаксических ошибок.var x:0
, x: x-1
и т. Д.
Кроме того, используя оператор ||
, мы присваиваем MyNameSpace
литерал объекта, если он еще не существует.Вы назначаете ему кодовый блок в пределах {}
.Вместо этого вы можете изменить x
, y
и direction
на свойство MyNameSpace
и использовать ключевое слово this
.И вы не можете вызвать setInterval(bouger, 5)
внутри литерала объекта.Таким образом, вы можете использовать setTimeout
внутри функции bouger
, чтобы повторить функцию через 5 мс:
var MyNameSpace = MyNameSpace || {
x: 0,
y: 20,
direction: "droite",
bouger: function() {
if (this.direction == "droite") {
this.x++;
} else if (this.direction == "gauche") {
this.x--;
}
document.getElementById("bouge").style.fontSize = this.x + "px";
document.getElementById("bouge").style.top = this.y + "px";
if (this.x == 200) {
this.direction = "gauche";
} else if (this.x == 0) {
this.direction = "droite";
}
setTimeout(this.bouger.bind(this), 5);
}
};
MyNameSpace.bouger();
<div id="bouge">text</div>
(style.left
не работал. Поэтому я использую fontSize
)