Bonsoir. Apres avoir suivi le tutorial sur la programmation objet en javascript
http://t-templier.developpez.com/tut...vascript-poo1/
http://t-templier.developpez.com/tut...vascript-poo2/
http://t-templier.developpez.com/tut...vascript-poo3/
J'ai effectue des petits tests. Il faut dire que nous etions de ceux la qui faisent du javascript a la script (sans vrament une gestion objet en bas). On va corriger cela. Revenons a mon probleme

Mon premier probleme concerne la notion de classe abstraite:
Partons du faite qu'une classe Mammifere a une une methode abstraite manger
Quant je redefinis la methode abstraite dans la fille avec la notation du genre
Vampire.prototype={
manger:function(){
alert("manger la chair humaine");
}
}
ca ne marche pas. il ne vois meme plus la classe de la mere, alors que
alors que
Animal.prototype.manger=function(){
alert("manger avec la bouche");
}
marche nickel.

le premiere notation est pratique et permet de regrouper plusieurs fonctions. de plus, c'est la notation a la json. what bad.
Tout l'exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
34
35
36
37
38
39
40
41
42
 
var Mammifere=function(modeAccouchement){
    this.modeAccouchement=modeAccouchement;
}
Mammifere.prototype={
    seNourrir:function(){
        this.manger();
    },
    manger:function(){//methode abstraite non encore implémentee
        throw new Error("non implémentée!");  
    }
}
 
//Une classe fille Animal. Ce cas marche nickel
var Animal=function(modeAccouch){
    this.modeAccouchement=modeAccouch;
}
heriter(Animal.prototype, Mammifere.prototype); 
Animal.prototype.manger=function(){  
    alert("manger avec la bouche");    
}
lion=new Animal("tombe enceinte");
lion.seNourrir();
 
 
 
//Ce exemple ci ne marche pas. Il met dracula.seNourrir() is not a function
//Vous remarquez que la seule différence avec la classe Animal,
//c'est Vampire.prototype=    plutot que
//Animal.prototype.manger=function().          What bad
 
var Vampire=function(modeAccouch){   
    this.modeAccouchement=modeAccouch;
}
heriter(Vampire.prototype, Mammifere.prototype); 
Vampire.prototype={  
    manger:function(){
         alert("manger la chair humaine"); 
    }   
}
dracula=new Vampire("se duplique");
dracula.seNourrir();
--------------------------------------------------
Le deuxieme concerne la notion de paquetage. je n'arrive pas a faire un paquetage interne du genre OUEX.Utils.init();

Un exemple concret.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
//Ce cas marche nickel
var DOMX=window.DOMX || {};
DOMX=function(){
    var moveComponent=function(){//Cette fonction n'est visible que dans le package
        alert("deplacement de composant");
    };
    return{
        init:function(){
            alert("initialisation");
            moveComponent.apply(null,arguments);
        },
        rien:function(){
            alert("rien a l'horizon");
        }
    }
}();
//NAMESPACE (a voir)
//Execution de l'initialisation
DOMX.init();
DOMX.rien();
 
 
//Par contre, celui ci ne passe pas. il me met OUEDX.Utilities.init() is 
//not a function
 
var OUEDX=window.OUEDX || {};
OUEDX=function(){
    //////////////////////////////////Debut paquetage
    //private
    var Utils={};
    Utils=function(){
        var fonccombo=function(){
        }
        fonccombo.prototype.afficherCombo=function(){
            alert("mon combo est affiche");
        }
    //public pour OUEDX.Utilities
    return{
        init:function(){
            alert("init du combo");
        }
    }
     ////////////////////////////////////Fin packetage OUEDX.Utils
    }();
 
    //public
    return{
        Utilities:function(){
            return Utils;
        }
    }
 ////////////////////////////////////Fin packetage OUEDX
}();
 
OUEDX.Utilities.init();
J'espere compter sur vous, car je dois commencer l'ecriture d'une api javascript et je veux utiliser ces bons concepts.
pour les tutoriaux