Astuces et techniques avancées en JavaScript
L’équipe du projet jslibs (en anglais) a créé un wiki intéressant qui regorge d’astuces JavaScript (en anglais). Jugez-en par les exemples suivants. Certains ne fonctionnent peut-être pas dans tous les navigateurs, mais méritent qu’on s’y attarde…
Vérifier qu’un objet n’est pas vide :
function isNotEmpty(obj) {
for ( var tmp in obj )
return true
}
Transformer l’objet arguments en tableau :
function foo() {
Array.slice(arguments); // is ['aa',11]
}
foo('aa',11);
Le singleton est un patron de conception qui limite l’instanciation d’une classe à un seul objet. Il est utile lorsqu’un objet unique doit coordonner les actions dans l’ensemble du système :
function MySingletonClass() {
if ( arguments.callee._singletonInstance )
return arguments.callee._singletonInstance;
arguments.callee._singletonInstance = this;
this.Foo = function() {
// ...
}
}
var a = new MySingletonClass()
var b = MySingletonClass()
Print( a === b ); // prints: true
Définir les valeurs par défaut des arguments d’une fonction :
function foo( a, b ) {
a = a || '123';
b = b || 55;
Print( a + ',' + b );
}
foo(); // prints: 123,55
foo('bar'); // prints: bar,55
foo('x', 'y'); // prints x,y
Insérer un tableau dans un autre :
var a = [1,2,3,4,5,6]
var b = ['a','b','c']
var insertIndex = 5;
Array.concat( a.splice( 0, insertIndex ), b, a );
// Result: 1,2,3,4,5,a,b,c,6