|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : novembre 2009 Messages : 77 ![]() |
L'attribut prototype n'est pas la propriété prototype même si les deux ne sont pas toujours distinctement présentés dans les livres/tutoriels javascript.
Ou en tout cas que je n'étais pas assez malin pour capter la nuance au premier coup d'oeil. Du coup forcément je me demandais pourquoi ce coup tordu avec les constructeurs si on veut simplement que le prototype de x soit y, pourquoi ne pas simplement faire x.prototype = y ?? Bon, le franc est tombé, la lumière fût, et les bouquins javascript avancés deviennent de douces mélodies. Ce post parce que pour asseoir la compréhension j'ai fait un petit code qui illustre bien (je trouve) le propos et que je pense (naïvement?) qu'il peut en aider d'autres: Code :
|
||
|
|
00
|
|
|
#2 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 808 ![]() |
Citation:
![]() C'est quoi pour toi l'attribut prototype ? Autant, la propriété, je comprends, tout, en JavaScript est objet et chaque objet hérite d'un (ou plusieurs) prototype, mais "l'attribut prototype", là, vraiment, je vois pas de quoi tu parles...
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 872 ![]() |
pareil que Bovino, je ne comprend pas tout dans ton post, pas même s'il y a une question ou s'il s'agit d'un partage de code ?
aussi tu sembles pas mal t’emmêler les pinceaux. Code :
|
||
|
|
00
|
|
|
#4 | |
|
Membre régulier
![]() Inscription : décembre 2007 Messages : 61 ![]() |
Oui, le prototype (la propriété interne [[prototype]]) ne peut être attribué "manuellement".
Tu dois mettre ton prototype en valeur de la propriété "prototype", et à l'instanciation, le runtime vérifiera si tu as mis un objet dans la propriété "prototype" et si oui, le mettra en valeur de la propriété inter interne [[prototype]]. L'algorithme d'instanciation est grosso modo un appel à la méthode interne [[construct]] décrite ainsi dans la norme : Citation:
|
|
|
|
10
|
|
|
#5 | |||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 872 ![]() |
Citation:
J'avais déjà eu affaire à des codes où le constructeur renvoyait un autre objet que le "this" (généré par le "new") et ça fonctionnait très bien. Par contre j'ignorais qu'il était impossible de renvoyer une primitive. (string, number, etc..) ![]() je me suis fais un petit code de test : Code :
|
|||
|
|
00
|
|
|
#6 | |
|
Membre régulier
![]() Inscription : novembre 2009 Messages : 77 ![]() |
Citation:
J'utilise le terme attribut au sens du javascript definitive guide: tout objet a 3 attributs: -extensible -prototype et -class. |
|
|
|
00
|
|
|
#7 | |
|
Membre régulier
![]() Inscription : novembre 2009 Messages : 77 ![]() |
Citation:
Plus maintenant heureusement. Rien ne l'empêche. Le constructeur est un objet aussi. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com