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 :

comment programmer en JS


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2009
    Messages : 115
    Par défaut comment programmer en JS
    Bonjour,

    Je souhaiterais savoir s'il vaut mieux programmer en javascript sous la forme JSON ou plutôt du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nom de fonction = fonction() {}
    Merci d'avance de vos avis.
    Bien cordialement.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Par défaut
    le JSON ets une syntaxe particulière du js,

    par exmple la définition d'une classe sans JSON
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       function maClasse(){}
       maClasse.prototype.methode1 = function(){};
       maClasse.prototype.methode2 = function(){};
    et en JSON
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       function maClasse(){}
       maClasse.prototype = {
           methode1 : function(){},
           methode2 : function(){}
       }
    Le JSON permet de spécifié toute les propriétées d'un objet d'un coup lors de sa création... si l'objet est déjà créer alors, on est obligé de passer par la syntaxe classique

    Il existe une fonction simple pour faire du JSON sur un objet déjà crée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     function extend(destination, source){
         for(var i in source)
            destination[i] = source[i];
      }
     
      var monObjet1= {
          prop1 : 'ok1'
      };
      var monObjet2= {
          prop2 : 'ok2'
      };
      extend(monObjet ,monObjet2);
    La fonction extend est plus lente que d'écrire une par une les propriétées a ajouter, mais est plus lisible, et plus simple à utiliser.

    bye

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2009
    Messages : 115
    Par défaut
    Dans ce cas, lorsque l'on fait référence à "this" c'est l'objet tout entier qui est pointé (maClass).

    Pour reprendre votre exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     function maClasse(){}
       maClasse.prototype = {
           prop : 'valeur'
           methode1 : function(){
                this.prop;
           },
           methode2 : function(){}
       }
    Mais dans ce cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     function maClasse(){}
       maClasse.prototype = {
           prop : 'valeur'
           methode1 : function(){
                this.prop;
           },
           methode2 = {
                 methode3 : function() {
                      this.prop
                 }
           }
       }
    Est ce que this fait référence à maClass comme une extension PHP ou il est uniquement lié à la methode2 ?

    Dans le cas de JSON on peut donc dire que c'est juste un affaire de lisibilité dans le code ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Par défaut
    le this représente le contexte d'exécution, dans un prototype, le this, fait référence a une instance, sauf si on appel directement la méthode du prototype, dans ca cas c'est prototype le contexte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        maClasse.prototype.methode1 = function(){
            alert(this);
        }
    this vaux donc prototype

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        monInstanceDeMaClasse.methode1 = function(){
            alert(this);
        }
    this vaux l'instance de maclasse

    une référence d'une fonction , aura pour contexte, l'objet la référençant, et non pas le contexte de la fonction d'origine ...

    il existe aussi deux méthodes spéciale, call et apply, qui permettent de définir le contexte a appliquer à la fonction

    Sinon, pour le JSON, oui , c 'est juste un problème de visibilité

    bye

  5. #5
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Permettez de rappeler à l'occasion qu'il existe aussi un débat riche concernant les bonnes pratiques de Javascript http://www.developpez.net/forums/d74...es-javascript/

    ERE

Discussions similaires

  1. [Palm] Comment programmer pour Palm Os ?
    Par Pascal Lob dans le forum Mobiles
    Réponses: 7
    Dernier message: 24/08/2007, 09h59
  2. Comment programmer un robot ?
    Par reggae dans le forum Robotique
    Réponses: 4
    Dernier message: 18/12/2005, 11h41
  3. Comment programmer sous dos ?
    Par AsmCode dans le forum C++
    Réponses: 8
    Dernier message: 17/11/2005, 02h07
  4. Réponses: 7
    Dernier message: 13/12/2004, 19h23
  5. comment programmer une progressbar
    Par Choucas dans le forum Paradox
    Réponses: 3
    Dernier message: 13/11/2002, 11h07

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