En fait je ne sais pas trop comment l'appeler ... 
c'est assez limité au niveau utilisation, mais j'ai trouvé le principe tellement fun que j vous livre le code...
Ce code s'applique lorsque l'on utilise ce type de programmation en javascript
1 2 3 4
| var func1 = function(nom, prenom){
this.nom=nom;
this.prenom=prenom;
} |
on instancie un objet :
var foo=new func1('Axel','Bazar')
ce qui permet ensuite :
alert(foo.nom+ ' ' +foo.prenom)
imaginons que l'on veuille surcharger (etendre) func1 ...
Je n'ai trouvé aucune methode permettant de le faire
1 2 3 4 5
| function extend(fn,prop){
var reg=/function\(([^)]*)\)\{((.*|(\r\n)*)*)\}/gim
reg.exec(fn.toString())
return new Function(RegExp.$1+',prop',RegExp.$2+'this.'+prop+'=prop;')
} |
utilisation:
func1=extend(func1,'adresse')
ce qui permet ensuite de faire:
1 2
| var bar=new func1('Axel','Bazar','Paris')
alert(bar.nom+' '+bar.prenom+' à ' +bar.adresse) |
J'ai peut être réinventé le fil à couper l'eau tiède nucléaire ?
De là a vous dire précisément l'utilité de la chose ...
PS j'ai tenté de le prototyper mais cela supposerait de pouvoir modifier this dans le prototype, d'ou la nécessité de passer par une fonction anonyme séparée
Partager