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 :
Mon problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
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 ).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ){ } }
Je pourrai très bien solutionner mon problème rapidement en rendant le tout non privé comme ceci :
Mais mon but étant d'apprendre, j'aimerai garder cette fonction privé puisqu'elle n'a aucune utilité ailleurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ){ } }
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é ?
Partager