Comment faire des classes imbriquées

Signaler
Messages postés
26
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
29 mai 2008
-
Messages postés
26
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
29 mai 2008
-
Voila, j'ai un bout de code en javascript, je ne comprend pas pourquoi mes classes imbriqué ne fonctionnent pas, j'aimerais que quelqu'un m'explique.

 function Fournisseur() {//Classe parent
        this.nom = "";
        this.adresse = Adresse;
        this.options = Options;
        this.taxes = Taxes;
        this.statistiques = Statistiques;
        /*this.memo = Memo;
        this.imExPortation = ImExPortation;
        this.info = Info; */
        this.activite = false;
        this.destinataireChargesSociales = false;
        //this.print =
        debug();
      }
        function Adresse() { //classe enfant
debug();
          this.contact = "";
          this.rue1 = "";
          this.rue2 = "";
          this.ville = "";
          this.province = "";
          this.codePostal = "";
          this.pays = "";
          this.telephone1 = "";
          this.telephone2 = "";
          this.telecopieur = "";
          this.noInsTaxe = "";
          this.courriel = "";
          this.siteWeb = "";
          this.dateDepuis = "";
        }
        function Options() {//classe enfant
          this.compteDeCharges = "";
          this.langueAffaire = "Français";
          this.remise = "";
          this.remiseJours = "";
          this.montantNetJours = "";
          this.calculerRemisesAvantTaxe = false;
          this.inclureQuandImpressionT5018 = false;
          this.methodeDeBonDeCommande = "Imprimer";
          this.impressionNomContactSurCheque = false;
          this.confirmationFacturesEtDevisParCourriel = false;
          this.MSOutLookSync = false;
        }
        function Taxes(){//classe enfant
          this.noms = new Array();
          this.noms[0] = "TPS";
          this.noms[1] = "TVQ";
          this.activites = new Array();
          this.activites[0] = false;
          this.activites[1] = false;
          this.taxes = new array();
          this.taxes["noms"] = this.noms;
          this.taxes["activites"] = this.isActiveTaxe;
          this.add = addTaxe;
          this.get = getTaxe;
          
          this.codeTaxe = false;
          this.addCode = addCodeTaxe;
        }
        function Statistiques(){//classe enfant
          var aujourdhui = new Date();
          this.anneeTaxe = new array();
          var anneePaiement = new array();
          this.paiements = new array();
        }

5 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

    quelles classes imbriquées...   j'ai rien compris.....
    pour simplifier, tu nous montres  :

function Fournisseur() {
   this.nom = "";   }
function Adresse() {
   this.contact = "";    }         

    et ben là, rien ne plante, bien sûr.
    mais qui appelle quoi ? comment ? ....

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
5
Bonjours,
le problème ne viendrait-il point des lignes en gras ?
function Fournisseur() {//Classe parent
        this.nom = "";
        this.adresse = Adresse;
        this.options = Options;
        this.taxes = Taxes;
        this.statistiques = Statistiques;
        /*this.memo = Memo;
        this.imExPortation = ImExPortation;
        this.info = Info; */
        this.activite = false;
        this.destinataireChargesSociales = false;
        //this.print =
        debug();
      }
essais avec :
this.adresse = new Adresse();
...
this.statistiques = new Statistiques();

Mais la notion de classe parente et classe fille est un peu légère.... non ?
[o-_-o]
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour,
<table bgcolor= "#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, le problème ne viendrait-il point des lignes
en gras ?</td>
</td></tr></tbody></table>au moins
un des problèmes c'est sur, il y a bien lieu de déclarer le nouvel objet avec
new .

Attention :
this.taxes = new array();array n'est pas
défini que je sache...
;O)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Je viens de retrouver un lien qui peut
s'avérer utile Langages basés sur les classes et langages basés sur les
prototypes
, pas relu mais cela à l'air assez complet.
;O)
Messages postés
26
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
29 mai 2008

Merci beaucoup, c'est bizarre que je n'est pas penser à déclarer mon objet, vive l'instanciation!!!