25.2 méthodes et objets propres hors constructeur |
See You Why? |
Avec un peu de JavaScript, n'oubliez pas de rendre vos pages plus dynamiques et plus interactives. |
MERCI |
Nous terminions la séquence précédente en annonçant que pour éviter une trop grande mobilisation de la mémoire de l'ordinateur de l'internaute visiteur, beaucoup de programmeurs en JS préféraient définir des méthodes hors constructeur, mais ils abandonnaient alors la programmation objet.
Cependant, un lecteur attentif aurait déjà pu contester puisque les méthodes définies dans notre séquence précédente l'étaient hors du constructeur des objets... et il n'aurait pas tout-à-fait tort. Cependant, nous admettrons que le constructeur définit l'empreinte de l'objet et que le prototype modifie cette empreinte. Dans les deux cas, même si l'on ne travaille pas dans le constructeur, on travaille au moins sur les empreintes des objets.
Si ce lecteur était encore plus concentré, il pourrait demander le sens du mot clé this qui, dans un constructeur, fait appel ou mieux, fait référence à l'objet dans lequel il est appelé dans le constructeur. Or, dans la séquence précédente, nous avons utilisé this hors d'un constructeur. Rappelons-nous la source :
o_Etudiant.prototype.meDevoir = function(du) {
this.montantdu = du;
}
o_Etudiant.prototype.meDevra = function() {
var duFutur = 1.1*this.montantdu;
return duFutur;
}
Après réflexion, il admettra qu'il est nécessaire d'élargir le sens et l'usage du mot clé this qui sera cependant toujours rattaché à l'objet en cours de traitement :
C'est ce dernier usage que nous développerons ci-après.
En fait, les programmeurs qui définissent des méthodes hors constructeur ou empreinte, créent une fonction ordinaire (et donc pas une méthode) en lui passant comme (seul ?) paramètre un objet... ce qui est une programmation utilisant les objets sans être de la programmation orientée objet ;o)
Ainsi, ils écrivent par exemple :
function calculerAireRect(rec) {
return rec.largeur * rec.hauteur;
}
voir suite >>>
voir suite >>>