Oui rien ne m'en empêche mais après réflexion et comme cela a été dit plus haut : on ne peut pas modifier le jeu d'instructions d'une fonction préalablement déclarée.
Fort de ce constat, le gain induit par le passage par la fonction d'héritage est lourdement limité puisqu'on est tout de même obligé de laisser une ligne au bas de la déclaration d'une classe qui n'est pas forcée d'hériter d'un parent.
Je préfère donc éviter de surcharger la pile d'appel et laisser une ".init();" au bas de chaque classe qui possédera une init statique.
Cependant, ta méthode était bien évidemment valable
C'est pour ça que je complète directement le prototype.
Parenthèse à part, j'utilise depuis un certain temps la librairie
phpjs qui rend disponible certaines fonctions de l'API PHP recordée en JS. Ça me fera encore plus gagné de temps pour le transcodage PHP -> JS.
Pour ce qui est des hacks je m'en méfie.
Même si mon but est ici de gagner du temps en évitant d'éparpiller mes comportements suivant le langage, ça reste sur des sentiers balisés.
Javascript étant surtout du côté client (là on ne maîtrise pas le rythme de mise à jour), il n'est pas acceptable de se retrouver avec des sites caduques lors de chaque mise à jour du navigateur.
Avant de laisser un code un peu finalisé, j'ai eu l'occasion de tester réellement le code de willpower et la completion du prototype d'Object créée des erreurs sur jQuery core et UI ainsi que Google Maps V3 (c'est même rapporté par firebug qui me dit de me méfier).
Est-ce que cette portion de code est réellement obligatoire pour self/parent?
1 2 3 4 5 6 7 8 9
|
Object.prototype.self = function(){
// retourne la classe(constructeur) de l'objet
return this.constructor;
}
Object.prototype.parent = function(){
// retourne la classe parente de la classe(constructeur) de l'objet
return this.self().parent();
} |
Partager