Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/01/2011, 16h51   #1
Nouveau Membre du Club
 
Inscription : mars 2003
Messages : 99
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 99
Points : 35
Points : 35
Par défaut tableau d'objets et méthodes

Bonjours à tous,

J'essaie de stocker différents objets de même type (classe) dans un tableau.
Lorsque j'essaie d'appeler une méthode de chacun des objets, en les accédant via le tableau qui les stocke (lui-même attribut d'un objet), j'obtiens une erreur javascript ("this.totos[i].describe is not a function") . Voici le code en question :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
function toto(a, b) {
    this.a = a;
    this.b = b;
 
    if( typeof toto.initialized == "undefined" ) {  
        toto.prototype.describe = function() { 				
            console.log(this.a + ' / ' + this.b);
        } 	        	        
        toto.initialized = true;  
    }
}
 
function totoManager() {
    this.totos = new Array();
 
    if( typeof totoManager.initialized == "undefined" ) {  
        totoManager.prototype.fullInfo = function() { 	
            for (var i = 0; i < this.totos.length; i++) {
        	    this.totos[i].describe();
        	}
        } 	        	        
        toto.initialized = true;  
    }
}
 
var tab = new totoManager();
 
tab.totos.push(new toto(1,2));
tab.totos.push(new toto(3,4));
tab.totos.push(new toto(5,6));
 
tab.fullInfo();
Si quelqu'un a une idée...
__________________
Things working well, no problems. Time to upgrade.
ben53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 17h37   #2
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
salut

utilise this pour tester ta propriété (vu que tu es à l'intérieur de la fonction matrice);

Code :
 if( typeof this.initialized == "undefined" ) {
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 17h41   #3
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 847
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 847
Points : 1 346
Points : 1 346
Code js :
1
2
3
4
5
6
 
function totoManager() {
...      	        
        toto.initialized = true;  
...
}


au lieu de


Code js :
1
2
3
4
5
function totoManager() {
...      	        
        totoManager.initialized = true;  
...
}
Willpower est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h08.


 
 
 
 
Partenaires

Hébergement Web