methusalah / optics

An optical simulator in browser
1 stars 1 forks source link

Classe statique #4

Open methusalah opened 9 years ago

methusalah commented 9 years ago

Si je comprend bien, quoique tu fasse en javascript est un objet. Du coup le principe de la classe statique n'est pas reproductible as-is.

J'ai donc bêtement fait un objet contenant mes champs et mes méthodes. Valable? Y'a-t-il des mécanique pour empêcher la modification des valeurs des champs? comme le statut final en java?

function Angle(){}; Angle.NULL = 0; Angle.FLAT = Math.PI; Angle.RIGHT = this.FLAT/2; Angle.FULL = this.FLAT*2; Angle.COUNTERCLOCKWISE = 1; Angle.CLOCKWISE = -1; Angle.NONE = 0;

Angle.getTurn = function(p0, p1, q) { var turn = p1.getSub(p0).determinant(q.getSub(p1)); if(turn > 0.00001) return Angle.COUNTERCLOCKWISE; else if(turn < -0.00001) return Angle.CLOCKWISE; else return Angle.NONE; };

solendil commented 9 years ago

Pas de statut final en javascript, en tous cas de base. Pas de classes statique non plus... La syntaxe suivante me semble plus javascript.

angle = {
  null : 0,
  flat : Math.PI,
  right : Math.PI/2,
  full : Math.PI*2,
  counterclockwise : 1,
  clockwise : -1,
  none : 0
}

Avec éventuellement

angle.getTurn = function(p0, p1, q) {
  var turn = vector.determinant(vector.sub(p1, p0), vector.sub(q, p1))
  if(turn > 0.00001)
    return -1;
  else if(turn < -0.00001)
    return 1;
  else
    return 0;
}

Selon les principes suivants:

Attention! Tu passeras à côté du langage tant que tu essaieras de reproduire ton code Java en Javascript. La philosophie des deux langages est totalement différente!