Etant donné l'actualité mouvementée, un petit post pour se reveiller.
J'ai mis à jour ma petite librairie JavaScript, toujours
disponible ici.
Les petites nouveautés, c'est des petites fonctions inspirées du monde ruby, qui permettent de travailler avec ce que l'on pourrait appeller des closures. Un petit exemple :
var ppj = new Array("Pierre", "Paul", "Jacques");
ppj.each(function(elem) {
document.write(elem + "<br />");
});
Très simple à implémenter en JavaScript cette fonction each, surtout quand on sait qu'en JavaScript une fonction est un type comme un autre :
/**
* Appelle une fonction pour chaque element
* du tableau
*/
Array.prototype.each = function(functor) {
for (var i = 0 ; i < this.length ; i++) {
functor(this[i]);
}
}
Franchement, c'est classe non ? Si on a besoin de travailler impérativement avec les index, on peut utiliser cette fonction :
var ppj = new Array("Pierre", "Paul", "Jacques");
ppj.eachWithIndex(function(elem, i) {
document.write("at " + i + " : " + elem + "<br />");
});
Bien pratique, j'ai rajouté cette fonctionnalité sur ma Hashtable, du coup, ça donne ça :
var ht = new Hashtable();
ht.put("jbe", 21);
ht.put("pvb", 24); // et toujours pas marié
ht.each(function(key, value) {
document.write(key + " is " + value + "<br />");
});
Alors, qui a dit que le JavaScript était un "sous" langage. C'est d'autant plus appréciable qu'on le retrouve un petit peu partout, bref, comment professionaliser le développement XUL par exemple hein ?