Imbrication d’objets javascript | Développement Web

Imbrication d’objets javascript

Dans cette partie, nous allons voir comment imbriquer des objets javascripts.

Dans le cadre de l’étude de cas de la création d’objets en javascript, nous allons créer un nouvel objet arbre, dont voici les propriétés:

  • nom
  • plantation

L’objet arbre définit plus précisément l’arbre d’un fruit et sera une propriété de Fruit. son constructeur sera:

function Arbre(txtNom, txtPlantation){
    this.nom= txtNom;
    this.plantation= txtPlantation;
    this.print= showArbre;
}

function showArbre(){
    document.write(this.nom+' '+this.plantation);
}

Nous allons maintenant ajouter l’objet Arbre pour donner plus de détail sur l’arbre d’un fruit:

function Arbre(txtNom, txtPlantation){
    this.nom= txtNom;
    this.plantation= txtPlantation;
    this.print= showArbre;
}

function showArbre(){
    document.write('< br />Arbre:  '+this.nom+' - Plantation: '+this.plantation);
}

function Fruit(txtColor, txtForm, objArbre){
    this.color = txtColor;
    this.form= txtForm;
    this.tree= objArbre;
    this.print= showFruit;
}

function showFruit(){
    document.write('Forme du fruit choisi: '+this.form);
    document.write('< br />Couleur du fruit: '+this.color);
     document.write('< br />Arbre du fruit: '); this.tree.print();
}

var arbrePomme = new Arbre('pommier','verger');
var fruitPomme = new Fruit('verte','ronde',arbrePomme);

fruitPomme.print();

// Affichera :
//     Forme du fruit: ronde
//     Couleur du fruit: verte
//     Arbre:  pommier - Plantation: verger

// Mise à jour d'un arbre:
arbrePomme.plantation = 'bananeraie';
document.write("L'arbre d'une pomme a pour caractéristiques : "); fruitPomme.tree.print();

// Affichera :
//     Arbre:  pommier - Plantation: bananeraie
//     A noter que tous les objets utilisant l'objet arbrePomme subiront la mise à jour.

Le constructeur des objets fruit attend cette fois en troisième paramètre objArbre, soit un objet de type Arbre et non une chaîne de caractères comme précédemment.

Un des principaux intérêts de la POO réside dans la modification et la cohérence des données. Si une donnée d’objet est modifiée, tous les objets qui utilisent cette donnée seront également touchés par cette modification.