IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Besoin d'aide JS OO


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 27
    Points
    27
    Par défaut Besoin d'aide JS OO
    Hello,

    J'aimerai créer une librarie graphique pour créer un barchart ( je sais qu'il en existe déjà des tas mais ceci est juste dans un but d'apprentissage ).
    J'ai d'en l'idée de créer un objet style jquery ex : monobj("divtoto").createGraph(200,300); j'ai tenté de m'appuyer sur le code jquery pour le faire, mais je n'y arrive pas.

    Voici le début de mon code.
    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
    (function(window){	
    	var _version= "0.0.1",
    		_canvas;
    	AnimatedGraph = function (className){		
    		return new AnimatedGraph.fn.init(className);
    	};
     
    	AnimatedGraph.fn = AnimatedGraph.prototype = {
    		constructor: AnimatedGraph,	
    		init: function(className){
    			_canvas = AnimatedGraph.search(className);			
    			_canvas.innerHTML = "Youpi";
    		},
    		search: function(className){
    			var elm = document.getElementsByTagName("div");			
    			for(i=0;i<elm.length;i++){
    				if(elm[i].className == className)
    					return elm[i];
    			}
    		},
    		createGraph: function(width,height){
    			var title = document.createElement("div");
    			title.innerHTML="tutu";
    			_canvas.appendChild(title);
    		}
    	};
     
    	return (function(){
    		var ret = new AnimatedGraph();
    		ret.createGraph = createGraph;
    		return ret;
    	});
     
     
    	AnimatedGraph.search = AnimatedGraph.fn.search;
    	function createGraph(width,height){
    		var title = document.createElement("div");
    		title.innerHTML="tutu";
    		_canvas.appendChild(title);
    	};
     
    	window.Graph = AnimatedGraph;	
    })(window);
    Mais si j'exécute Graph('canvas').createGraph(200,300) cela ne marche pas quelqu'un pourrait-il m'aider ?

    D'avance merci

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonjour

    Si vous voulez créer une librairie graphique avec un fonctionnement "à la jQuery", je vous conseille de lire les quatre tutoriels de Teylor Feliz : Comment créer facilement un framework JavaScript.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    Hello Daniel,

    Ah merci beaucoup super, j'avais pas vu ce tutoriel.

    Il va bien me servir pour comprendre certaines notions encore un peu abstraite pour moi :

    Bonne journée

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    Alors après avoir lu rapidement, je n'ai pas trouvé l'information dont j'avais besoin.

    En effet j'aimerai faire comme : $('#divid').methode(param) pour faire quelque chose. Avec le code de mon premier message j'arrive bien à avoir un objet du type $('#divid') ex : Graph('canvas') par contre si j'appelle la méthode search qui est sensé appartenir à mon objet soit directement par graph('canvas').search soit par obj = graph('canvas') et obj.search j'ai systématiquement une erreur me disant que la méthode search n'hésiste pas. Ou est-ce que je me suis trompé ?

    d'avance merci

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    // cette innocente fonction devient un constructeur
    var myClass = function (message) {
    this.publicVariable = 10;
    alert(message);
    return new mySubClass.increment();
    };

    // accès au prototype
    mySubClass = myClass.prototype = {
    constructor: myClass,
    decrement:function() {
    console.log( --this.publicVariable );
    },
    increment:function() {
    console.log( ++this.publicVariable );
    }
    };

    myObject = new myClass();
    myObject.decrement(); // -1
    myObject.decrement(); // -2
    mySubClass.increment(); // 1
    Je ne comprends pas pourquoi sur ce code qui est quasiment comme celui trouver sur un tutoriel, j'obtiens une erreur sur myObject.decrement(); on ca me dit que decrement n'est pas une fonction .

  6. #6
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return new mySubClass.increment();
    C'est quoi ce retour du constructeur ?!

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Je suis assez débile alors j'utilise toujours le même système pour faire du OO.

    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
    function MyClass(){} //objet
    MyClass.prototype = {
     myMethode1:function(i,j){ //publicMethode
     	return true;
     },
      myMethode2:function(i,j){ //publicMethode
      if this.myMethode1{i,j}
     	return false;
     },
    initialize: function(els) { 
      this.elements = (els.elements || els).slice();
      this.publicPropriete1=this.elements[0];//publicPropriete
      this.publicPropriete2=this.elements[1];//publicPropriete
      this.publicPropriete3=1;//publicPropriete
      return this;
     }
    };
     
    //constructeur
    MyClass.create = function(elements) {
     var M = new MyClass();
     return M.initialize(elements);
    };
     
    //autre constructeur
    MyClass.zero = MyClass.create([0,0]);
     
    //autre constructeur
    MyClass.swap = function(el0,el1) {
     return MyClass.create([el1,el0]);
    };
     
    //library style
    var $M = MyClass.create;
    C'est lisible et flexible, avec une bonne structure bien solide.
    J'ai repompé ça sur http://sylvester.jcoglan.com/

    jquery après j'y connais pas grand chose, mais j'espère que ça t'aidera à déméler comment marche le OO en javascript.

Discussions similaires

  1. besoin d'aide pour le composant DBComboBox
    Par jane2002 dans le forum Bases de données
    Réponses: 8
    Dernier message: 28/02/2004, 19h01
  2. Besoin d'aide avec postgresql sous windows NT
    Par Chihuahua dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/07/2003, 08h29
  3. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19
  4. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48
  5. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo