Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JavaScript] Question sur l'héritage

Object.Create() obligatoire pour copier les méthodes ?

Sujet résolu
    30 janvier 2019 à 17:54:04

    Bonjour,

    Je suis le cours https://openclassrooms.com/fr/courses/1916641-dynamisez-vos-sites-web-avec-javascript/1919609-les-objets.

    Est-on toujours obligé d'utiliser la méthode Object.Create() pour hériter des méthodes de l'objet parent ? Si les méthodes sont définies dans l'objet parent et non par prototype est-ce que ça change quelque chose ?

    Merci ! :-)

    -
    Edité par webrider 30 janvier 2019 à 18:01:32

    • Partager sur Facebook
    • Partager sur Twitter
      30 janvier 2019 à 17:58:39 - Message modéré pour le motif suivant : La demande de l'équipe de modération a été honorée.


      Pas d'aide concernant le code par MP, le forum est là pour ça :)

        31 janvier 2019 à 14:22:48

        Ce cours est obsolète. Je te conseille d'aller chercher ton savoir ailleurs. Celui-ci a été mis à jour en fin d'année dernière, sur OC: https://openclassrooms.com/fr/courses/2984401-apprenez-a-coder-avec-javascript

        Il ne parle que du langage sans parler de son usage pour le web, mais sur les bases du langage il est bien plus à jour.

        -
        Edité par Genroa 31 janvier 2019 à 14:23:48

        • Partager sur Facebook
        • Partager sur Twitter
        /!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
          8 février 2019 à 12:22:36

          Genroa je dois dire que je suis intéressé par ce cours même s'il n'est pas totalement orienté web, ce sont des bases solides qui me permettront de mieux appréhender le cours axé sur le web dont tu me parles.

          Je compte faire les deux pour en tirer le meilleur de chacun d'entre eux.

          Sinon concernant ma question, est-ce que faire un call() pour appeler le constructeur de l'objet hérité suffit ? Franchement j'ai essayé et ça a fonctionné sans faire appel à Object.Create(). J'ai eu accès aux propriétés et aux méthodes dans l'objet enfant.

          Merci d'avance.

          • Partager sur Facebook
          • Partager sur Twitter
            8 février 2019 à 13:42:36

            Ce cours est loin d'être obsolète.

            Au contraire, il permet d'appréhender et de comprendre les fondamentaux du JavaScript dans sa version courante : l'ES5.

            webrider a écrit:

            Est-on toujours obligé d'utiliser la méthode Object.Create() pour hériter des méthodes de l'objet parent ? Si les méthodes sont définies dans l'objet parent et non par prototype est-ce que ça change quelque chose ?

            Non ce n'est pas obligatoire si tu ne définies pas les méthodes dans le prototype.

            Je te conseille de lire cet article sur l'héritage : https://developer.mozilla.org/fr/docs/Learn/JavaScript/Objects/Heritage

            -
            Edité par Sharkou_ 8 février 2019 à 17:33:41

            • Partager sur Facebook
            • Partager sur Twitter
              8 février 2019 à 14:59:44

              @Sharkou_ je ne sais pas si tu travailles dans ce domaine ou si c'est ton expérience qui te fait dire ça, mais pour bosser au quotidien sur des projets web on est en ES6 minimum, on transpile si vraiment le client est relou. IE11 et moins représentent une part ridicule d'utilisateurs et ne possède plus aucun support, faut savoir avancer à un moment. On peut dire qu'il faut facturer en conséquence, et que ça s'utilise encore, soit. Mais ES6 est le standard actuel depuis un moment déjà en production, utiliser Object.create pour essayer de faire de l'objet, ben c'est pas terrible. Même niveau lisibilité du code, c'est pas fou la syntaxe function...

              On peut expliquer le fonctionnement de JS dessous et les prototypes, sans s'arrêter là et ne pas enseigner aux élèves les pratiques modernes... Après on a des gens qui arrivent avec du code dégueulasse sur les forums et ça fait pas envie.

              -
              Edité par Genroa 8 février 2019 à 15:05:58

              • Partager sur Facebook
              • Partager sur Twitter
              /!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
                8 février 2019 à 16:35:15

                Attention, je ne dis pas qu'il ne faut pas faire d'ES6 (au contraire !). Je dis seulement qu'il ne faut pas perdre de vue les fondamentaux de JavaScript sur lesquels s'appuient les transpileurs aujourd'hui.

                Mais je suis d'accord qu'écrire :

                class Circle extends Shape

                sera bien plus simple qu'en faisant de l'héritage prototypique.

                -
                Edité par Sharkou_ 18 février 2019 à 19:15:22

                • Partager sur Facebook
                • Partager sur Twitter
                  18 février 2019 à 17:06:28

                  Ok donc si je résume c'est bien de le savoir mais il ne faut pas s'attarder dessus (ES5). Je vois en effet qu'il est plus simple de déclarer des objets en ES6, ça ressemble d'ailleurs à ce que je fais déjà en PHP.

                  Parfait merci les gars ! :-)

                  • Partager sur Facebook
                  • Partager sur Twitter

                  [JavaScript] Question sur l'héritage

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown