Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
818 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  comment crée une fonction JavaScript comme .toLowerCase() ? ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment crée une fonction JavaScript comme .toLowerCase() ? ...

n°1198674
ZeBorG
Yes we can!
Posté le 13-09-2005 à 16:08:58  profilanswer
 

...je m'explique :
 
à la place d'avoir :
 

Code :
  1. function maFct(param1, param2){
  2. ...
  3. }


 
et donc l'appeler de la façon suivante :
 

Code :
  1. maFct(toto, titi);


 
je souhaite l'appeler comme ceci :
 

Code :
  1. toto.maFct(titi);


 
comme les fonction .toLowerCase() .toUpperCase() .innerHTML etc...
 
vous m'avez compris ?

mood
Publicité
Posté le 13-09-2005 à 16:08:58  profilanswer
 

n°1198683
gatsusat
Posté le 13-09-2005 à 16:15:23  profilanswer
 

monobjet.MaNouvelleFonction = function(titi) {
  this.bidule
  action.machin
}


Message édité par gatsusat le 13-09-2005 à 16:15:48
n°1198695
masklinn
í dag viðrar vel til loftárása
Posté le 13-09-2005 à 16:28:03  profilanswer
 

et si t'as créé une jolie classe pour ton joli objet
 
MaClasse.prototype.maMethode = function () {
}


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1198715
ZeBorG
Yes we can!
Posté le 13-09-2005 à 16:43:02  profilanswer
 

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 :jap:

n°1198733
masklinn
í dag viðrar vel til loftárása
Posté le 13-09-2005 à 16:55:08  profilanswer
 

ZeBorG a écrit :

mais [je] connais bien le langage objet


J'ai le droit de douter [:petrus dei]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1198769
ZeBorG
Yes we can!
Posté le 13-09-2005 à 17:51:19  profilanswer
 

masklinn a écrit :

J'ai le droit de douter [:petrus dei]


LOL, RAC de tes doutes ! :na:  
 
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.
 
 :hello:  
 
(RAC = rien à cirer = vive les acronymes à la con)

n°1198771
masklinn
í dag viðrar vel til loftárása
Posté le 13-09-2005 à 17:52:54  profilanswer
 

ZeBorG a écrit :

pseudo objet


[:petrus75]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1198774
ZeBorG
Yes we can!
Posté le 13-09-2005 à 18:02:21  profilanswer
 


 :heink:  
 
 
"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.

n°1198786
masklinn
í dag viðrar vel til loftárása
Posté le 13-09-2005 à 18:21:38  profilanswer
 

ZeBorG a écrit :

:heink:  
 
 
"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.


C'est juste qu'en JS l'objet fonctionne par prototypes et non par classes [:petrus75]
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]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1200967
ZeBorG
Yes we can!
Posté le 16-09-2005 à 11:53:44  profilanswer
 

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 :
  1. Date.prototype.monthNames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" );
  2. Date.prototype.getMonthName = getMonthName;
  3. function getMonthName(){
  4. return this.monthNames[this.getMonth()];
  5. }


 
Ainsi, sur mes objets Date, je peux directement appeler getMonthName comme ceci :
 

Code :
  1. var myDate = new Date(2005, 2, 24, 1, 5, 0);
  2. alert(myDate.getMonthName()); // ceci renvoi "March"


 
 
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 :
  1. var myDate = new DateEx(2005, 2, 24, 1, 5, 0);
  2. alert(myDate.getMonthName()); // ceci renvoi "March"


 
Voici comment j'ai essayé de procéder :
 

Code :
  1. function DateEx() {
  2. this.monthNames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" );
  3. this.getMonthName = getMonthName;
  4. }
  5. DateEx.prototype = new Date();
  6. function getMonthName(){
  7. return this.monthNames[this.getMonth()];
  8. }


 
Malheureusement, la console javascript de firefox m'indique que this.getMonth n'existe pas. Comment faire ?

mood
Publicité
Posté le 16-09-2005 à 11:53:44  profilanswer
 

n°1200987
gatsusat
Posté le 16-09-2005 à 12:04:12  profilanswer
 

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()];  
}

n°1200991
masklinn
í dag viðrar vel til loftárása
Posté le 16-09-2005 à 12:05:03  profilanswer
 

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" );  
 
Date.getMonthName = function() {  
    return this.monthNames[this.getMonth()];  
}


 :non:  
Il veut un type DateEx héritant de Date
 
Donc  

var DateEx = Date;
DateEx.prototype.monthNames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" );  
DateEx.prototype.getMonthName = function() {  
    return this.monthNames[this.getMonth()];  
}


normalement :o


Message édité par masklinn le 16-09-2005 à 12:08:22

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1201006
ZeBorG
Yes we can!
Posté le 16-09-2005 à 12:28:21  profilanswer
 

ok merci, je teste ça lundi, je parts en weekend là :) (vive les RTT...)

n°1201020
masklinn
í dag viðrar vel til loftárása
Posté le 16-09-2005 à 12:48:23  profilanswer
 

>>> var DateEx = Date;
>>> DateEx.prototype.monthNames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" );
>>> DateEx.prototype.getMonthName = function() {return this.monthNames[this.getMonth()]; }
function () { return this.monthNames[this.getMonth()]; }
>>> d = new DateEx();
Fri Sep 16 2005 12:48:07 GMT+0200
>>> d.getMonthName();
September


:o


Message édité par masklinn le 16-09-2005 à 12:50:07

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1202157
ZeBorG
Yes we can!
Posté le 19-09-2005 à 10:46:08  profilanswer
 

merci, ça marche impec :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  comment crée une fonction JavaScript comme .toLowerCase() ? ...

 

Sujets relatifs
Diaporama en javascriptBesoin d'aide pour Javascript BBCode
[javascript]popup avec setTimeout : ça se close() pas[Au secour]>>Comment créé t-on une base de donnée svp ??
declarer une variable de session dans une fonctionéditeur en javascript a placer sur un site( mini word)
Fonction avec 2 variables?Attendre la fin d'un thread créé par CreateThread()
ouvrir une page en bas de page en javascript[RESOLU] Fonction qui retourne le numero d'un ligne ?? (excel)
Plus de sujets relatifs à : comment crée une fonction JavaScript comme .toLowerCase() ? ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR