Le this dans une fonction privée
Bonjour,
J'aimerai avoir accès à des attributs de mon objet dans une fonction privé qui est dans une de me méthodes.
Mon constructeur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
var affImg = function(s,sX,sY,w,h,x,y){
this.img = new Image();
this.img.src = s;
this.srcX = sX;
this.srcY = sY;
this.width = w;
this.height = h;
this.posx = x-this.width/2;
this.posy = y-this.height/2;
} |
Mon problème :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
affImg.prototype.move = function(){
var sensX=3;
var sensY=3;
this.posx+=sensX;
this.posy+=sensY;
var resetPosition = function(){
this.posx=-50;
this.posy=-50;
sensX=Math.random();
sensY=Math.random();
}
if ( this.posx > windowWidth || this.posy > windowHeight){
resetPosition();
console.log(this.posx+' et '+this.posy+' et '+sensX+' et '+sensY);
} else if ( this.posx < -50 || this.posy < -50 ){
}
} |
Ceci va évidemment me poser un problème car this.posx et this.posy ( ligne 11 et 12 ) ne sont pas les même que ceux 4 lignes plus haut ( ligne 7 et 8 ).
Je pourrai très bien solutionner mon problème rapidement en rendant le tout non privé comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
affImg.prototype.move = function(){
var sensX=3;
var sensY=3;
this.posx+=sensX;
this.posy+=sensY;
this.resetPosition = function(){
this.posx=-50;
this.posy=-50;
sensX=Math.random();
sensY=Math.random();
}
if ( this.posx > windowWidth || this.posy > windowHeight){
this.resetPosition();
console.log(this.posx+' et '+this.posy+' et '+sensX+' et '+sensY);
} else if ( this.posx < -50 || this.posy < -50 ){
}
} |
Mais mon but étant d'apprendre, j'aimerai garder cette fonction privé puisqu'elle n'a aucune utilité ailleurs.
Mon but étant de pouvoir réussir à créer de jolies codes orientés objets en définissant bien ce qui est privé de publique.
Mais dans ce genre de cas, comment accéder à this.posx dans ma fonction privé ?