Coder proprement ses classes Javascript
Par Hadrien le dimanche, 15 juillet 2007, 01:30 - Développement - Lien permanent -
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 comment je code mes classes JS. Il existe peut être de meilleures méthodes mais je trouve celle-ci 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
…
Nous avons ainsi des classes bien structurées et aucune variable globales (à part la première bien sur) qui pourrait se retrouver écraser par d'autres scripts.
lu 1897 fois
Commentaires
merci beaucoup pour l'aide.Je suis debutant en javascript et j'aimeais si c'est possible que vous m donnez des conseils pour mieux ameliorer mon niveau
merci encore
Bien sur, que veux tu savoir ?
Au fait pour savoir les bibilothéques de javascript comme prototype et jquery on peut tjs utiliser la facon que vous utiliser pour creer ta classe.
merci
J'ai pas tout compris, mais je vais répondre oui… :p
Mais cette syntaxe n'est pas universelle. Il y a moult façon d'écrire des classes en JS. Chez jQuery, ils font un peu différemment, il me semble. Chez YUI aussi. Chez prototype ils font de la merde.
Bonjour Hadrien,
Au fait j'ai un ptit soucis sur la programmation en js.
j'ai realisé deux select multiples et j'aimerai ajouter les options d'un select dans le deuxieme select.Et je suis bloqué sur çà dpui 48h merci