Bonjour,
Bon le titre est super long,mais je ne sais pas comment définir mieux mon incompréhension en ce qui concerne l'affectation d'objet.
Jusque là ça marche. Mais j'ai quand même l'impression de faire des bévues
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 function Planete(options){ options = options || {}; this.name=options.name||""; //... } Planete.prototype={ set:function(jour,lieu){ if(!jour){jour=Maintenant;} if(!lieu){lieu=Ici;} //... initialize toutes les propriétés d'une planéte switch(this){ case SysSol.corps.SOLEIL : datSol(jour,lieu); break; //... fonction déterminant les données du soleil case SysSol.corps.LUNE : datLun(jour,lieu); break; // ... fonction déterminant les données de la lune default : datPlan(jour,lieu); break; // ... pour le reste } return this; } } var SysSol = { corps:{ SOLEIL = new Planete({ name : 'Soleil', o : {val: 1.243,correction : 4.456} //... }, LUNE =new Planete({ } //... } constantes:{ //... } for(var i in SysSol.corps){SysSol.corps[i].set();}
Par contre à partir de là je comprend plus ce qui se passe
pdat[j][i] représente, pour toutes les valeurs de j, toujours les mêmes valeurs pour l'objet i qui est d'ailleurs la valeur qu'aurait cet objet à jdeb+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 function systemeSolaireEvents(lieu,dure){ pdat = {}; // positions de tous les objets pour la période var j=0; var jdeb = lieu.date-2; var jmax=jdeb+dure; while(jdeb<jdmax){ pdat[j]= {}; for (var i in SysSol.corps) {pdat[j][i] = SysSol.corps[i].set(jd,obs);} j++; jdeb++; } } systemeSolaireEvents(ici,7);
Une âme charitable pourrait-t-elle m'expliquer ce comportement (ou m'indiquer où je pourrais avoir une explication car même si Google est ton ami encore faut-il savoir quelle question poser!) et éventuellement si c'est pas trop abuser une piste pour résoudre ce problème.
Merci.
Partager