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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
var func1 = function(nom, prenom){ 
				this.nom=nom;
				this.prenom=prenom;
				}
on instancie un objet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
var foo=new func1('Axel','Bazar')
ce qui permet ensuite :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
alert(foo.nom+ ' ' +foo.prenom)
imaginons que l'on veuille surcharger (etendre) func1 ...
Je n'ai trouvé aucune methode permettant de le faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
func1=extend(func1,'adresse')
ce qui permet ensuite de faire:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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