Classes Javascript propres
Il existe de nombreuses façons de coder en Javascript. La plus fréquente est malheureusement la plus crade : lister ses fonctions les une après les autres…
Voici une méthode pour faire ça moins crados, il en existe peut être de meilleures mais celle-ci a le mérite d’être très propre et très lisible.
var monProjet = {}; // On crée une variable globale du nom du projet
// Ce tableau permettra de stocker et récupérer facilement les objets créés.
//Je lui donne le nom de la classe avec un 's' marquant le pluriel :
monProjet.maClasses = new Array();
/**
* Classe maClasse : fait des choses.
*/
monProjet.maClasse = function(attr)
{
// Variable
this.variable1 = attr;
monProjet.maClasses.push(this);
this.init();
};
// Méthodes publiques de maClasse
monProjet.maClasse.prototype =
{
/**
* Initialisation, méthode apellée à l'instanciation de l'objet
*/
init: function()
{
this.variable2 = this.variable1 + 10;
},
/**
* Autre méthode qui va afficher variable2 dans une alerte
*/
autreMethode: function()
{
alert(this.variable2);
},
/**
* Retourne une valeur de l'objet sous forme de chaine
*/
toString: function()
{
return "maClasse Object";
}
};
// Méthodes Statiques
/**
* Une methode statique qui retourne 'yo'
*/
monProjet.maClasse.uneMethodeStatique = function()
{
return "yo";
};
/**
* Le genre de méthode statique où on se rends compte de l'utilité du tableau d'objets vu plus haut
*/
monProjet.maClasse.getByVar1 = function(var1)
{
for (var i = 0; monProjet.maClasses[i]; i++)
{
if (monProjet.maClasses[i].variable1 == var1)
{
return monProjet.maClasses[i];
}
}
return false;
};
//On peut ensuite créer un objet maClasse et apeller ses méthodes publiques et statiques :
var unObjet = new monProjet.maClasse("youpi");
unObjet.toString(); // retourne "maClasse Object"
monProjet.maClasse.getByVar1("youpi"); // retourne l'objet "unObjet"
monProjet.maClasse.getByVar1("youpi").autreMethode(); // Crée une alerte