liste méthodes objet JS

liste méthodes objet JS - HTML/CSS - Programmation

Marsh Posté le 07-12-2006 à 16:37:30    

bonjour
 
Je voudrais savoir si c'est possible d'afficher la liste des méthodes d'un objet Javascript (window, document, etc...)
Je sais toutefois que c'est possible de le faire sur les propriétés .
 
Après avoir lu des docs sur la facon de créer des constructeurs JS, je suppose que c'est pas possible d'afficher directement les méthodes dans le sens où j'ai vu que pour créer une méthode associée à un objet il faut indiquer le nom de la fonction dans une propriété de l'objet.
 
ex:  
function maFonction(prop) {
  this.maProp = prop
 this.maMethode = afficherProp;
}
 
function afficherProp() {
   alert(this.maProp);
}
 
 
donc la conclusion que j'en fait - merci de me dire si je me trompe - c'est qu'il faut afficher la liste des propriétés de l'objet, et faut déduire  les noms de méthodes d'apres le nom des propriétés qui font une référence a une méthode , en esperant que les noms soient explicites.
 
c ca ?
 
merci

Reply

Marsh Posté le 07-12-2006 à 16:37:30   

Reply

Marsh Posté le 07-12-2006 à 16:50:44    

First c'est pas très beau comme tu le fais, il vaut mieux se servir des prototypes c'est fait pour. Et par ailleurs c'est étrange d'appeler un objet maFonction donc:

Code :
  1. function monObjet(prop){
  2.   this.maProp = prop;
  3. }
  4. monObjet.prototype.afficherProp = function (){
  5.   alert(this.maProp);
  6. }
 

Après ce qu'il faut savoir c'est qu'en js la notion d'objet est ... euh ... bizarre. En fait tous les objets sont des tableaux. Du coup les méthodes sont en faite des fonction stockées dans ces tableaux.

 

C'est là qu'intervient l'instruction for ( truc in machin). Qui fait quoi hein? Et bien elle prends tous les elements contenu dans le tableau machin. Et la miracle si tu mets un objet à la place du tableau :D

 

Exemple avec le code donné plus haut:

Code :
  1. var a = new monObjet('pouet');
  2. for (var i in a){
  3.   alert('name:'+i+' -- value:'+a[i]);
  4. }


affichera:


maProp -- pouet
afficherProp -- {...le code de la fonction ]

 

Reste maintenant la vraie question, je vois pas dans quelque cas tu peux avoir un objet dont tu ignores les methodes [:w3c compliant]


Message édité par anapajari le 07-12-2006 à 16:51:37
Reply

Marsh Posté le 07-12-2006 à 17:10:36    

et bien autant je vais pas igorer les méthodes des objets dont j'ai créé les constructeurs sinon je alzheimer inside
mais plutot pour des objets natifs de Javascript comme window, document, navigator, etc...
certes ya des docs en lignes, mais c toujours bien d'avoir des outils en local.
 
oui le construcuteur "maFonction " ne devrait pas s'appeler ainsi puisque c'est une fonction sur la forme mais pas sur le fond puisque c'est un constructeur
 
par contre qu'est ce que c'est un prototype ? ca sert a quoi ?

Reply

Marsh Posté le 07-12-2006 à 17:26:18    

jokari34 a écrit :

et bien autant je vais pas igorer les méthodes des objets dont j'ai créé les constructeurs sinon je alzheimer inside
mais plutot pour des objets natifs de Javascript comme window, document, navigator, etc...
certes ya des docs en lignes, mais c toujours bien d'avoir des outils en local.


Alors utiliser ce genre d'astuce plutôt que de lire la doc c'est teh mighty connerie hein...
 

jokari34 a écrit :

oui le construcuteur "maFonction " ne devrait pas s'appeler ainsi puisque c'est une fonction sur la forme mais pas sur le fond puisque c'est un constructeur


Nan sur le fond et sur la forme c'est un tableau
 

jokari34 a écrit :

par contre qu'est ce que c'est un prototype ? ca sert a quoi ?


Ta question me fait violament douter de tes précédents "objets" donc un peu de lecture sur l'oo en js:
- http://developer.mozilla.org/fr/do [...] prototypes ( et toutes les pages avant/après)
- http://phrogz.net/JS/Classes/OOPinJS.html ( OOPinJS2.html et voir même ExtendingJavaScriptObjectsAndClasses.html et )

Reply

Marsh Posté le 07-12-2006 à 17:51:18    

disons que la prog objet ca va , mais certains s aspects spécifiques a JS pas vraiment.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed