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 ?
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.
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.
@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
/!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
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.
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 ! :-)
[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.
Pas d'aide concernant le code par MP, le forum est là pour ça :)