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 :

Object Oriented Javascript


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 27
    Par d�faut Object Oriented Javascript
    Bonjour tout le monde,

    J'ai une petite question sur l'utilisation des objets dans Javascript, il y a plusieurs m�thodes mais je ne sais plus qui est le plus utilis� et pour quelle raison, j'avoue que je suis confus, je donnerai quelque exemples :

    M�thode 1 : cr�er un Object comme �a :
    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
     
        var Naruto = {
            this.userName : "default",
            changeName : function(name){
                this.userName = name;    
            },
            showNarutoUser : function(){
                alert('bonjour '+this.userName);
            }
        }
     
        // initialization de l'objet:
     
        Naruto.changeName("Stitox");
        Naruto.showNarutoUser ();
     
        // on peut aussi je pense rajouter d'autres fonctions comme ça 
     
        Naruto.prototype.sayHello = function(){
            alert('hello');
        }
    M�thode 2 : cr�er un Object comme �a :

    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
     
     
    function Naruto(name){
        this.userName = name;
        this.changeName = function(newName){
            this.userName = newName;
        },
        this.showNarutoUser = function(){
            alert('bonjour '+this.userName);
        } 
    }
     
     // initialization de l'objet:
     
    var graf = new Naruto('Stitox');
        graf.changeName('El garch');
        graf.showNarutoUser();
     
    // Rajout du prototype 
     
          Naruto.prototype.sayHello = function(){
            alert('hello');
        }
        graf.sayHello ();


    Quelle m�thode utilisez vous souvent, je ne maitraise pas encore tr�s bien Javascript, surtout les objets, prototypes, et concr�tement je ne sais plus quand profiter de tout �a, si vous avez quelque chose � me recommander, des liens utiles, je serai tr�s reconnaissant.

    P.S : je suis bien habituer avec jQuery, d'apr�s les projets d'int�gration sur qui j'ai travaill�, je sens que mon niveau est pas du tout mauvais


    Merci beaucoup par Avance.

  2. #2
    Membre exp�riment�
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    128
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 128
    Par d�faut
    C'est un vaste sujet sur lequel il est quasiment impossible de faire une r�ponse compl�te.
    Pour faire concis, l'un est un objet litt�ral, l'autre utilise une fonction constructeur.

    J'ai tendance � utiliser plus souvent la seconde forme, mais ce n'est qu'une pr�f�rence personnelle.
    La seconde forme est aussi celle que tu pr�f�rera si tu dois faire plusieurs instances de ton objet.

    Il existe de nombreuses et subtiles diff�rence entre ces deux formes, et il est assez dur de trouver de bons articles (y compris sur d�veloppez.com) couvrant r�ellement le sujet.

    Personnellement je te conseillerait de potasser "Javascript Patterns" de Stoyan Stefanov qui est � ce jour la source d'information la plus compl�te et la plus compr�hensible (ce qui est important car des articles ambigus je peux t'en sortir � la pelle) que j'ai trouv� sur ce sujet.
    De plus ce livre � l'avantage d'�tre assez concis (torch� en deux ou trois sessions de lecture) et d'aller droit au but : ce qui est vachement appr�ciable... mon temps est pr�cieux et avoir 400 pages d'introduction sur les notions basiques dans chaque bouquin c'est assez lourd au bout d'un moment.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 27
    Par d�faut
    Merci TheGwy pour tes explications, je vais lire "Javascript Patterns" de Stoyan Stefanov, esp�rant trouver des r�ponses � ce sujet.

  4. #4
    R�dacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par d�faut
    salut,

    cr�e un objet Naruto unique

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    function Naruto(name){ ... }
     
    var v1 = new Naruto(...);
    var v2 = new Naruto(...);
    cr�e deux objets v1 et v2 de type Naruto

    dans le 1er cas Naruto est un objet unique, dans le 2� cas c'est une fonction (une pseudo-classe) qui te permet de cr�er des objets

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 27
    Par d�faut
    Merci bigboomshakala,

    C'est clair maintenant, j'utiliserai donc la premi�re solution dans le cas ou je veux cr�er un seul Objet, et la 2�me pour cr�er plusieurs instances.

  6. #6
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    D�cembre 2010
    Messages
    1 009
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activit� : sans emploi

    Informations forums :
    Inscription : D�cembre 2010
    Messages : 1 009
    Par d�faut
    Citation Envoy� par stitox Voir le message
    Merci bigboomshakala,

    C'est clair maintenant, j'utiliserai donc la premi�re solution dans le cas ou je veux cr�er un seul Objet, et la 2�me pour cr�er plusieurs instances.
    bien r�sum�.

  7. #7
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    la premi�re solution est est la m�thode naturelle de cr�ation d'un objet ce que les autre langage font au travers de la cr�ation d'une classe impl�mentant le design pattern "Singleton"
    soit donc un objet unique.

    dans la solution suivante tu cr�e un prototype ce qui s'apparente � un constructeur dans un langage � base de classe. puis tu cr�e une ou plusieurs instances.

    A+JYT

Discussions similaires

  1. programmer en object orient� en JS la diff�rence entre deux m�thodes ?
    Par nicko_73 dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 03/11/2009, 13h24
  2. Object Oriented database
    Par goplay dans le forum Oracle
    R�ponses: 0
    Dernier message: 13/01/2009, 22h34
  3. transtypage object en javascript
    Par monphp dans le forum G�n�ral JavaScript
    R�ponses: 8
    Dernier message: 22/05/2007, 10h51

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