comment crée une fonction JavaScript comme .toLowerCase() ? ... - HTML/CSS - Programmation
Marsh Posté le 13-09-2005 à 16:15:23
monobjet.MaNouvelleFonction = function(titi) { 
  this.bidule 
  action.machin 
}
Marsh Posté le 13-09-2005 à 16:28:03
et si t'as créé une jolie classe pour ton joli objet 
 
MaClasse.prototype.maMethode = function () { 
}
Marsh Posté le 13-09-2005 à 16:43:02
merci pour les réponces  
 
je débute en javascript (mais connais bien le langage objet). Je ne savais pas qu'on pouvait créer des classes en javascript. Je vais m'y pencher de plus près. Merci encore  
 
Marsh Posté le 13-09-2005 à 16:55:08
| ZeBorG a écrit : mais [je] connais bien le langage objet | 
 
J'ai le droit de douter ![[:petrus dei] [:petrus dei]](https://forum-images.hardware.fr/images/perso/petrus dei.gif)
Marsh Posté le 13-09-2005 à 17:51:19
| masklinn a écrit : J'ai le droit de douter  | 
 
LOL, RAC de tes doutes !  
  
 
en tout cas j'ai réécrit tout ce dont j'avais besoin en pseudo objet et c'est nettement plus propre/puissant comme ça. 
 
  
  
 
(RAC = rien à cirer = vive les acronymes à la con)
Marsh Posté le 13-09-2005 à 17:52:54
| ZeBorG a écrit : pseudo objet | 
 ![[:petrus75] [:petrus75]](https://forum-images.hardware.fr/images/perso/petrus75.gif)
Marsh Posté le 13-09-2005 à 18:02:21
 
  
  
 
 
"pseudo" par ce que c'est pas la syntaxe objet habituel. Tu sens trop que ça a était rajouté après coup pour combler un vide (cf. http://devedge-temp.mozilla.org/vi [...] avascript/ ) 
Enfin bref, cette approche objet marche très bien pour ce que je veux en faire donc c'est cool.
Marsh Posté le 13-09-2005 à 18:21:38
| ZeBorG a écrit : 
 | 
 
C'est juste qu'en JS l'objet fonctionne par prototypes et non par classes ![[:petrus75] [:petrus75]](https://forum-images.hardware.fr/images/perso/petrus75.gif) 
 
Et que la pluspart des éléments du langage sont une forme d'objets (ce qui permet entre autres de filer directement des fonctions à d'autres fonctions en paramètres, chose n'étant possible que dans les langages considérant les fonctions comme des objets à part entière) 
 
Et cette page est franchement pas terrible, accessoirement ![[:petrus75] [:petrus75]](https://forum-images.hardware.fr/images/perso/petrus75.gif)
Marsh Posté le 16-09-2005 à 11:53:44
re-bonjour, 
l'oop en javascript c'est bien et tout mais j'ai un peu du mal avec l'héritage. Il y à 1000 façons d'écrire la même chose et je m'y perds un peu. Je souhaite étendre la class Date avec quelques fonctions du style getMonthName qui renvoi directement le nom du mois et non le numéro comme le fait getMonth. 
 
Pour l'instant, j'arrive à ajouter des méthodes directement dans l'objet Date comme ceci : 
 
| Code : 
 | 
 
 
Ainsi, sur mes objets Date, je peux directement appeler getMonthName comme ceci : 
 
| Code : 
 | 
 
 
 
Mais ce que je préfèrerai faire c'est crée une class DateEx qui hérite de Date puis je lui ajoute des méthode comme ceci : 
 
| Code : 
 | 
 
 
Voici comment j'ai essayé de procéder : 
 
| Code : 
 | 
 
 
Malheureusement, la console javascript de firefox m'indique que this.getMonth n'existe pas. Comment faire ? 
Marsh Posté le 16-09-2005 à 12:04:12
Date.prototype.monthNames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" );  
 
Date.getMonthName = function() {  
    return this.monthNames[this.getMonth()];  
} 
Marsh Posté le 16-09-2005 à 12:05:03
DateEx = Date 
=> DateEx hérite de Date 
 
puis 
DateEx.prototype.taNouvelleFonctionMember = function () {} 
| gatsusat a écrit : Date.prototype.monthNames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" );   | 
 
  
  
Il veut un type DateEx héritant de Date 
 
Donc  
| var DateEx = Date;  | 
 
normalement 
Marsh Posté le 16-09-2005 à 12:28:21
ok merci, je teste ça lundi, je parts en weekend là  (vive les RTT...)
 (vive les RTT...)
Marsh Posté le 16-09-2005 à 12:48:23
| >>> var DateEx = Date;  | 
 
Marsh Posté le 13-09-2005 à 16:08:58
...je m'explique :
à la place d'avoir :
et donc l'appeler de la façon suivante :
je souhaite l'appeler comme ceci :
comme les fonction .toLowerCase() .toUpperCase() .innerHTML etc...
vous m'avez compris ?