Свойство boll.circle.x и .y меняются просто при интроспекции свойств boll-a.
И как работает console.log - может ли она обманывать
function Ball(circle,angle,u,region){
this.circle=circle;//Circe { x:Number, y:Number,......}
this.region=region;
this.angle=angle*Math.PI/180;
this.speed=u;
this.cos=Math.cos(angle);
this.sin=Math.sin(angle)
console.log(circle)
}
Ball.prototype.move=function(){
console.log("Это сообщ. не показывается, а то что ниже срабатывает как буд-то 3-5 раз, но если 2 строчки снизу закоментировать, то свойства не меняются "+this.circle.x+" , "+this.circle.y);
this.circle.x+=this.cos*this.speed;
this.circle.y+=this.sin*this.speed;
}
// вызывается с сюрпризом
Controller.prototype.createBoll = function(){
var ball=this.GeneratorBoll.createBoll(); //return new Boll(...)
//var region=this.findRegionByPoint(Math.round(ball.circle.x),Math.round(ball.circle.y));
console.log("BALLL1111",ball);// ball.circle.x=10
console.log("BALLL222",ball); // ball.circle.x=20, что происходит
console.log(ball.circle.x==ball.circle.x); // true
this.balls.push(ball); // эээ, если ее закоментировать, то в consol.log-ах все нормально, этот же вызов вообще после стоит, и как влиять может
/// this.balls.push она добавляет ball в массив где его x и у другие
};
// вызов где то здесь
Controller.prototype.init=function(){
this.canvas=new Canvas(this.id_canvas,this.width,this.height);
this.GeneratorBoll=new GeneratorBoll(this.radius,this.width,this.height,
this.uMin,this.uMax);
this.createBoll();
this.roundAllBollsDraw();
}
Controller.prototype.roundAllBollsDraw=function(){
this.canvas.draw(this.balls);
this.balls.forEach(ball=>ball.move());
this.checkCollison();
this.ifLeave();
//window.requestAnimationFrame(this.roundAllBollsDraw);
setTimeout(()=>(this.roundAllBollsDraw()),1000);