Bonsoir,
très très noob en js mais connaissant bien le Pascal et un peu le C, je suis perplexe lors d'une tentative de traduction d'un code js vers du Pascal.
En Pascal il y a des méthodes nommées procedure à qui on passe des paramètres et qui font leur petite cuisine, travaillant en général sur des variables globales, et il y a des function, qui renvoient une valeur après traitement.
En js j'ai une chose qui s'appelle function, reçoit deux paramètres, et n'en fait rien en retour... Un truc m'échappe :
Si je compare avec
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 function MtxInvert3x3(m, i) { var scale = 1.0 / Determinant3x3(m); i.m00 = scale * (m.m22 * m.m11 - m.m21 * m.m12); i.m01 = -scale * (m.m22 * m.m01 - m.m21 * m.m02); i.m02 = scale * (m.m12 * m.m01 - m.m11 * m.m02); i.m10 = -scale * (m.m22 * m.m10 - m.m20 * m.m12); i.m11 = scale * (m.m22 * m.m00 - m.m20 * m.m02); i.m12 = -scale * (m.m12 * m.m00 - m.m10 * m.m02); i.m20 = scale * (m.m21 * m.m10 - m.m20 * m.m11); i.m21 = -scale * (m.m21 * m.m00 - m.m20 * m.m01); i.m22 = scale * (m.m11 * m.m00 - m.m10 * m.m01); }
là je vois bien l'instruction return. Pourquoi n'est-elle pas présente dans l'autre fonction ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function Determinant3x3(m) { var det = m.m00 * (m.m22 * m.m11 - m.m21 * m.m12) - m.m10 * (m.m22 * m.m01 - m.m21 * m.m02) + m.m20 * (m.m12 * m.m01 - m.m11 * m.m02); return (det); }
Quand je la traduis en Pascal, le compilateur me dit que "i" n'est pas utilisé ensuite.
m et i sont des matrices 3x3 de double (si ça a un sens en js).
Ou alors ce qui s'appelle "function" en js peut fonctionner comme une procédure, avec des variables globales, s'il n'y a pas de return ?
Merci de me préciser ce point.
Partager