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 :

Exercice : Instanciation d'un objet


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Auto-formation
    Inscrit en
    Décembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Auto-formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Exercice : Instanciation d'un objet
    Bonjour !

    Je suis en train de faire l'activité du cours Apprenez à programmer avec javascript, et depuis plusieurs jours, je suis complétement bloqué ...

    Je viens vers vous pour solliciter votre aide.

    Voici la consigne :

    Après votre travail sur le site de streaming, on vous demande d'aider avec une app qui permet aux utilisateurs de suivre les livres ils sont en train de lire, ou ont lu.

    Votre travail est de créer la classe Book et de peupler la base de données de développement avec trois ou quatre livres pour vérifier le bon fonctionnement de l'interface.

    Dans le fichier Book.js, créez une classe Book.

    La classe doit comporter les champs suivants :

    • title: le titre du livre (string)
    • author: l'auteur du livre (string)
    • pages: le nombre total de pages (number)
    • description: une description courte du livre (string)
    • currentPage: la page à laquelle l'utilisateur s'est arrêté (number, valeur de 1 par défaut)
    • read: si l'utilisateur a terminé le livre ou non (boolean)



    La classe Book nécessite une méthode instance readBook qui prend un numéro de page (number) en argument. Cette méthode sera appelée pour que l'utilisateur puisse signaler à quelle page il s'est arrêté.

    si le numéro de page n'est pas valable, prévenir l'utilisateur et ne pas changer les valeurs des propriétés de l'instance
    sinon, donnez la valeur de l'argument reçu à la propriété currentPage
    si la valeur de currentPage est la dernière page du livre, le livre est considéré comme read (lu)

    Maintenant, dans database.js, créez trois ou quatre instances de la classe Book à l'aide du mot-clé new.

    Créez un tableau bookList qui contient toutes ces instances.

    Nom : Exoexo.png
Affichages : 968
Taille : 30,0 Ko

    Je vous remercie de votre attention.

  2. #2
    Candidat au Club
    Homme Profil pro
    Auto-formation
    Inscrit en
    Décembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Auto-formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Je suis navré, j'ai oublié d'enlever le "return;" qui traine dans la méthode d'instance.

    Par contre, ceci n'a toujours pas résolu mon problème.

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 969
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 969
    Points : 44 129
    Points
    44 129
    Par défaut
    Bonjour,
    tu devrais nommer la méthode readBook plutôt que readbBook

    Le problème principal que je vois et que tu ne fais pas le test sur la valeur du paramètre number mais sur currentPage que tu affectes après :
    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
    readBook(number) {
        /**
         * il faut utiliser number pour les tests et non currentPage 
         */
        if (this.currentPage > this.pages || this.currentPage < 0) {
            console.log("Erreur, veuillez saisir une autre donnée");
        }
        else if (this.currentPage == this.pages) {
            this.read = true;
        }
        else {
            this.currentPage = number;
            this.read = false;
        }
    }

  4. #4
    Candidat au Club
    Homme Profil pro
    Auto-formation
    Inscrit en
    Décembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Auto-formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Effectivement, tu as raison sur le fait qu'on doit utiliser number et pas this.currentPage.
    J'ai également fait une autre erreur, il ne faut pas mettre dans l'instance this.read et number, vu que c'est définie pas la méthode d'instance de la class.
    En plus de ça j'ai mis une valeur par défaut à this.currentPage et this.read, en pensant que ces valeurs seront modifiés par l'utilisateur de l'appli grace à la méthode d'instance.
    J'ai testé et ... ça marche !
    Je te remercie de m'avoir donné une bonne piste !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 08/10/2007, 11h19
  2. Aide au niveau méthode GET
    Par J0r_x dans le forum Langage
    Réponses: 2
    Dernier message: 20/12/2006, 10h07
  3. aide sur la méthode openschema
    Par boss_gama dans le forum ASP
    Réponses: 9
    Dernier message: 29/06/2006, 12h57
  4. [PHP-JS] Aide PHP->Javascript
    Par zoreil dans le forum Langage
    Réponses: 7
    Dernier message: 12/05/2006, 14h44

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