<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.lalex.com/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>LAlex devblog v6 - Bug (?) : super, qui es-tu donc ?  - Commentaires</title>
  <link>http://blog.lalex.com/</link>
  <atom:link href="http://blog.lalex.com/feed/rss2/comments/122" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>fr</language>
  <pubDate>Fri, 28 Nov 2008 07:30:10 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - LAlex</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c244</link>
    <guid isPermaLink="false">urn:md5:ab0143c374dbd9a7fef1d1d3c14f8a9c</guid>
    <pubDate>Sat, 18 Oct 2003 13:28:00 +0000</pubDate>
    <dc:creator>LAlex</dc:creator>
    
    <description>&lt;p&gt;&lt;quote&gt;- soit on &quot;fusionne&quot; et en implementant doIt dans notre sous-classe on fait reference a super.doIt() pour aussi appeler la methode de la super-classe mais dans le contexte de notre sous-classe&lt;/quote&gt; C'est bien de ca que je parlais ! &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; Mais le problème était de lui transmettre les arguments, sans distinction du nombre d'arguments.&lt;br /&gt;
&lt;quote&gt;si on ne veut pas choisir les arguments c'est donc qu'on veut passer tous les arguments, donc autant directement laisser faire la chaine d'heritage et ne PAS implementer doIt dans la sous-class&lt;/quote&gt;La tu te bases uniquement sur l'exemple, qui ne sert qu'à illustrer mes propos ... &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; Evidemment, si c'est pour faire exactement la même chose que la méthode de la classe mère, ca ne sert absolument à rien de l'implémenter dans la classe fille... :roll:&lt;/p&gt;
&lt;p&gt;Quant à l'utilité de passer tous les arguments (celle pour laquelle j'en avais besoin en tout cas), elle vient de deux classes (que je donne dans ce blog d'ailleurs) : une classe &lt;strong&gt;Grid&lt;/strong&gt; (qui hérite de &lt;em&gt;Array&lt;/em&gt;), qui n'est autre qu'un tableau à deux dimensions, et une classe &lt;strong&gt;Matrix&lt;/strong&gt; qui hérite de &lt;em&gt;Grid&lt;/em&gt;, qui elle ne peut contenir que des nombres. Toutes deux ont une méthode fill, qui prend une liste d'arguments qui vont servir à remplir la grille/matrice ligne par ligne. Le seule différence est que la méthode fill vérifie bien que tous les arguments sont numériques avant d'executer super.fill ... et pour lui passer tous les arguments, il faut bien utiliser apply ... :roll:&lt;/p&gt;
&lt;p&gt;En fait, ma logique de départ était &quot;J'applique les instructions de la méthode de la classe mère à l'objet en cours, cad &lt;em&gt;this&lt;/em&gt;&quot; ... J'ai toujours un peu de mal à cerner pourquoi il faut passer super au lieu de this à &lt;em&gt;apply&lt;/em&gt;, mais je commence à vaguement approcher cette notion. &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_cool.gif&quot; alt=&quot;8)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;quote&gt;non non et non,&lt;br /&gt;
AS2 a une syntaxe de classe, mais il reste prototype-based&lt;/quote&gt;C'est bien pour ca que je peste depuis le début sur le fait que MM se soit contenté de faire un traducteur ... :? En fait, sur cette version MX 2004, ils n'ont fait que de la cosmétique !!! &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_sad.gif&quot; alt=&quot;:(&quot; class=&quot;smiley&quot; /&gt; Ils ont arrangé l'IDE, mais n'ont pas touché au langage (a part quelques optimisations de performance de classe Array, etc..). Alors fournir une sytaxe &quot;class-based&quot; avec un langage &quot;prototype-based&quot;, plutôt que de séduire les codeurs Java et autre, ca finit par prendre la tête plus qu'autre chose !!! :?&lt;/p&gt;
&lt;p&gt;Pour en revenir aux arguments, ca me fait penser à une discussion avec un codeur dans un langage tout pourri, qui ne peux prendre ni des tableau, ni du XML ni un nombre non-délimité d'arguments pour une fonction :&lt;br /&gt;
&quot;J'ai besoin de pouvoir passer un nombre indéfini d'arguments&lt;br /&gt;
- ben t'as qu'à faire une fonction qui prend 100 arguments, et tu te préoccupes pas de ceux qui sont vides&lt;br /&gt;
- oui, mais si j'ai besoin de 101 arguments ?&lt;br /&gt;
- ben tu mets 200 arguments à ta fonction, t'auras jamais besoin d'autant hein ?&quot; ..... La j'avoue que j'ai un peu halluciné !!! 8O &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_biggrin.gif&quot; alt=&quot;:D&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - Timothee Groleau</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c242</link>
    <guid isPermaLink="false">urn:md5:a02466b7bcc7cb80679159e58862a619</guid>
    <pubDate>Sat, 18 Oct 2003 11:46:43 +0000</pubDate>
    <dc:creator>Timothee Groleau</dc:creator>
    
    <description>&lt;p&gt;Salut Zwetan, He beh, tu es rechauffe dis donc! Merci pour les liens :).&lt;/p&gt;
&lt;p&gt;A mon avis, il faut faire la distinction entre ce qui est propre et qui est du bon OO et ce qui marche.&lt;/p&gt;
&lt;p&gt;Utiliser super.doIt.apply(super, arguments), ca n'a certainement pas l'air propre et c'est aussi un truc qui est illogique et qui est donc pratiquement impossible a comprendre si tu le passes a un autre developpeur, sur ca on est d'accord. Cela dit, ca marche en actionscript: comme on disait plus haut actionscript va appliquer l'appel de methode sur l'instance et pas sur super et c'est ca qu'on veut. On pourrait considerer le fait que ca marche comme un bug d'ailleurs, moi je prefere voir ca comme le comportement voulu de super en ActionScript.&lt;/p&gt;
&lt;p&gt;&lt;quote&gt;--&gt; super.doIt.apply(this,arguments);&lt;br /&gt;
ca ne sert a rien&lt;br /&gt;
super.doIt( je, choisis, les , arguments)&lt;/quote&gt;&lt;br /&gt;
C'est ce que j'ai dit a Lalex tout en haut mais comme il me l'a dit, il y a des situations ou tu ne connais pas le nombre de parametres que tu va recevoir, le constructeur de Array par exemple. Si tu veux sous classer Array avoir un premier parametre, disons le temps d'instanciation (par exemple) puis tous les parametres suivant comme dans Array pour les passer au super constructeur, tu seras emmerde si tu ne peux pas passer un nombre arbitraire d'arguments au constructeur super, et pour ca on a apply.&lt;/p&gt;
&lt;p&gt;Sans doute qu'a la base, c'est une mauvaise idee de vouloir sous-classer Array comme ca, ou de creer une methode qui prend un nombre indetermine de parametres (mauvais OO?). Le truc c'est que le compilateur t'autorise a le faire et le language a des outil pour aider: apply, call). Alors meme si c'est crade, c'est sur que des personnes essaieront et y trouveront peut-etre une utilite. Il faut donc qu'on sache ce qui marche et ce qui ne marche pas. En l'occurence, super.doIt.apply(this), ca marche pas; super.doIt.apply(super), ca marche.&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - zwetan</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c239</link>
    <guid isPermaLink="false">urn:md5:624f11e2e2ad3881b691a023fb014b64</guid>
    <pubDate>Fri, 17 Oct 2003 23:18:50 +0000</pubDate>
    <dc:creator>zwetan</dc:creator>
    
    <description>&lt;p&gt;bon ok j'arrive sur le tard, mais la encore quelques remarques:&lt;/p&gt;
&lt;p&gt;pourquoi faire&lt;br /&gt;
super.doIt.apply(this,arguments);&lt;br /&gt;
au depart ?&lt;br /&gt;
je pige pas la logique derriere cela ?&lt;/p&gt;
&lt;p&gt;super est la pour faire reference dynamiquement a une class heritee,&lt;br /&gt;
donc:&lt;/p&gt;
&lt;p&gt;- soit on ne l'implemente pas dans la sous-classe et au moment de l'appel de la methode doIt on utilisera la methode de la super-classe dans le contexte de la sous-classe (c'est automatique)&lt;/p&gt;
&lt;p&gt;- soit on l'implemente dans la sous-classe et donc on override la methode doIt de la super-classe&lt;/p&gt;
&lt;p&gt;- soit on &quot;fusionne&quot; et en implementant doIt dans notre sous-classe on fait reference a super.doIt() pour aussi appeler la methode de la super-classe mais dans le contexte de notre sous-classe&lt;/p&gt;
&lt;p&gt;--&gt; super.doIt.apply(this,arguments);&lt;br /&gt;
ca ne sert a rien&lt;br /&gt;
super.doIt( je, choisis, les , arguments)&lt;br /&gt;
si on ne veut pas choisir les arguments c'est donc qu'on veut passer tous les arguments, donc autant directement laisser faire la chaine d'heritage et ne PAS implementer doIt dans la sous-class&lt;/p&gt;
&lt;p&gt;---&gt; super.doIt.apply(super, arguments);&lt;/p&gt;
&lt;p&gt;ca c'est encore pire !!!&lt;br /&gt;
si je vois un seul mec faire ca au boulot il se prends 2 baffes &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;lorsque l'on definit les methodes on est dans un mode schematique de construction, cad on construit la class pour l'utiliser ensuite dans une instance&lt;/p&gt;
&lt;p&gt;le fait de faire reference a super c'est reutiliser une partie du schema d'une class heritée dans le schema de la sous-classe&lt;/p&gt;
&lt;p&gt;mais des que l'on est dans une instance,&lt;br /&gt;
super.doIt.apply(super, arguments);&lt;br /&gt;
n'a plus du tout aucun sens!!!&lt;br /&gt;
ca voudrait dire que l'on veut executer une methode de l'instance sur le contexte d'une class heritee, c'est totalement illogique, a partir du moment ou on est dans l'instance notre seul contexte d'execution c'est l'instance elle-meme.&lt;/p&gt;
&lt;p&gt;et je reviens donc sur la remarque du depart, pourquoi utiliser un super.doIt.apply(this,arguments); au depart ?&lt;br /&gt;
quel est l'utilité concrete ?&lt;/p&gt;
&lt;p&gt;pour moi c'est un peu comme le probleme du getter en AS2 (blog de tweenpix) qui modifie la variable plutot que seulement la renvoyer.&lt;/p&gt;
&lt;p&gt;A partir du moment ou ne respecte pas le role des objets c'est sur que on va forcement arriver a des choses bizarres.&lt;/p&gt;
&lt;p&gt;et petite note sur ca:&lt;br /&gt;
&lt;quote&gt;Il ne faut pas oublier que passer du &quot;prototype-based&quot; au &quot;class-based&quot; fait aussi changer la logique&lt;/quote&gt;&lt;br /&gt;
non non et non,&lt;br /&gt;
AS2 a une syntaxe de classe, mais il reste prototype-based, alors que si on compare avec JScript.NET en mode managé lui c'est un vrai class-based qui utilise par defaut expando pour garder un coté dynamique.&lt;br /&gt;
AS2 c'est juste du vent pour le class-based, c'est l'IDE qui fait tout le boulot, il interprete une syntaxe a class pour la compiler en prototype-based, ce qui est surement bien pour les developpeurs venant de JAVA/C# mais qui est illogique en soit.&lt;/p&gt;
&lt;p&gt;le prototype-based n'est pas le parent pauvre du class-based c'est juste un mode de pensée, de conception des objets différent, perso je dirais au plus proche des objets.&lt;/p&gt;
&lt;p&gt;sur cela je finis avec un quote de laurent bossavit sur fr.comp.objet:&lt;br /&gt;
&lt;quote&gt;&lt;br /&gt;
Re: [long] Python et langages de script...&lt;br /&gt;
&gt; A quoi ressemble les langages objets qui ne sont pas dit &quot;à classes&quot; ?&lt;br /&gt;
&gt; (c'est une vraie question, je connais pas ..)&lt;/p&gt;
&lt;p&gt;Voir par exemple les langages objet à prototypes. Il en est un très &lt;br /&gt;
connu, mais très peu utilisé pour construire des systèmes d'objet au sens &lt;br /&gt;
propre: c'est JavaScript. Parmi les langages plus &quot;sérieux&quot; - mais encore &lt;br /&gt;
moins utilisés - on peut citer Self ou Dylan.&lt;/p&gt;
&lt;p&gt;Un petit article amusant qui démontre la structure par prototype de &lt;br /&gt;
JavaScript et sa supériorité à certains points de vue sur le paradigme de &lt;br /&gt;
classe qu'incarne Java:&lt;br /&gt;
  &lt;a href=&quot;http://www.crockford.com/javascript/inheritance.html&quot; rel=&quot;nofollow&quot;&gt;http://www.crockford.com/javascript/inheritance.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Des infos sur Self:&lt;br /&gt;
  &lt;a href=&quot;http://research.sun.com/self/language.html&quot; rel=&quot;nofollow&quot;&gt;http://research.sun.com/self/language.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Laurent&lt;br /&gt;
&lt;a href=&quot;http://bossavit.com/&quot; rel=&quot;nofollow&quot;&gt;http://bossavit.com/&lt;/a&gt;&lt;br /&gt;
&lt;/quote&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - LAlex</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c237</link>
    <guid isPermaLink="false">urn:md5:93f3254672529ce9e2367bff1a55fe0a</guid>
    <pubDate>Fri, 17 Oct 2003 16:55:54 +0000</pubDate>
    <dc:creator>LAlex</dc:creator>
    
    <description>&lt;p&gt;&lt;quote&gt;Ca m'etonnerai que ca te convienne ...&lt;/quote&gt;Arf, t'as bien compris comment je fonctionne ... &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_biggrin.gif&quot; alt=&quot;:D&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Mais je vais peut-être en rester la aussi ... j'ai ma solution, c'est deja pas mal !!! &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; Merci encore de t'être penché la dessus avec moi ! &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - Timothée Groleau</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c234</link>
    <guid isPermaLink="false">urn:md5:efe863488c85f6c174c43b21deadcbac</guid>
    <pubDate>Fri, 17 Oct 2003 15:53:40 +0000</pubDate>
    <dc:creator>Timothée Groleau</dc:creator>
    
    <description>&lt;p&gt;Ben... oui pour une methode normale... Dans les languages EcmaScript 3 (javaScript, actionscript), this represente &lt;strong&gt;toujours&lt;/strong&gt; l'object a partir duquel la methode est appele.&lt;/p&gt;
&lt;p&gt;Maintenant super &lt;strong&gt;DOIT&lt;/strong&gt; casser cette regle sinon il ne pourrait jamais remonter la chaine de l'heritage de niveau en niveau.&lt;/p&gt;
&lt;p&gt;Si super etait un object normal, le this dans methode deviendrait effectivement super pendant l'appel super.method() et on ne pourrait pas assigner de nouvelles valeurs sur this.&lt;/p&gt;
&lt;p&gt;Donc pour moi, super est implemente nativement dans le player et n'est simplement pas un object actionscript comme les autres. Il n'obeit pas aux memes regles tout simplement. C'est une reponse un peu... heu... merdique, certe ;), mais c'est tellement evident que super ne respecte pas la regle du this que je ne le considere meme pas comme un element actionscript normal et je ne me pose pas trop de question a son sujet (je te dit, je suis un peu feignant sur ce coup la).&lt;/p&gt;
&lt;p&gt;Ce que je peux dire aussi, c'est que &quot;super&quot; ne fait meme pas parti de la specification ECMAScript 3.&lt;br /&gt;
&lt;a href=&quot;http://www.ecma-international.org/publications/standards/Ecma-262.htm&quot; rel=&quot;nofollow&quot;&gt;http://www.ecma-international.org/publications/standards/Ecma-262.htm&lt;/a&gt;&lt;br /&gt;
Il n'existe pas dans JavaScript et c'est une raison supplementaire pour que je le considere comme un hack de MM. Pour moi, vraiment, super n'est pas un object comme les autres. Remarque ca peut aussi etre un getter tres sophistique dont je ne connais pas l'implementation.&lt;/p&gt;
&lt;p&gt;Ca m'etonnerai que ca te convienne mais si ca peux t'aider a dormir, c'est tout ce que je te souhaite :).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - LAlex</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c232</link>
    <guid isPermaLink="false">urn:md5:f93720c8c7d2d87bdaea6b03e21142b5</guid>
    <pubDate>Fri, 17 Oct 2003 15:29:29 +0000</pubDate>
    <dc:creator>LAlex</dc:creator>
    
    <description>&lt;p&gt;&lt;quote&gt;A vu de nez, c'est le meme comportement que quand tu fais super.method(): le &quot;this&quot; dans &quot;method&quot; ne pointe pas sur super mais pointe sur l'instance et donc logiquement &quot;this instanceOf LittleChild&quot; est vrai. Si le meme se&lt;br /&gt;
produit en utilisant &quot;super.method.apply(super)&quot;, ca veut dire que this est l'instance de base, auquel cas &quot;super.method.apply(super)&quot; est vraiment l'equivalent de super.method() et ca c'est une super bonne nouvelle puisqu'avec ca tu peux utiliser ton arguments array &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/quote&gt; En effet, ca marche trés bien. Ce que je n'arrive pas à comprendre, c'est que quand on fait super.methode(), le this ne change pas, mais le super change c'est bien ca ? Mais la si je passe le super de mon niveau LittleChild, le this dans Child.doIt devrait etre le super de LittleChild non ?!? 8O&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - Timothée Groleau</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c231</link>
    <guid isPermaLink="false">urn:md5:49baa9d39da8882d7229b13353326170</guid>
    <pubDate>Fri, 17 Oct 2003 15:03:05 +0000</pubDate>
    <dc:creator>Timothée Groleau</dc:creator>
    
    <description>&lt;p&gt;Aller, je suis pas encore parti et maintenant j'ai MX sous la main &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&gt; Apres le premier super.doIt.apply, on se retrouve donc dans Child.doIt,&lt;br /&gt;
&gt; avec super en tant que this, et on a this instanceof LittleChild&lt;br /&gt;
&gt; qui retourne true ... donc pourquoi la considération précédente&lt;br /&gt;
&gt; est-elle fausse ?!?&lt;/p&gt;
&lt;p&gt;A vu de nez, c'est le meme comportement que quand tu fais super.method():&lt;br /&gt;
le &quot;this&quot; dans &quot;method&quot; ne pointe pas sur super mais pointe sur l'instance&lt;br /&gt;
et donc logiquement &quot;this instanceOf LittleChild&quot; est vrai. Si le meme se&lt;br /&gt;
produit en utilisant &quot;super.method.apply(super)&quot;, ca veut dire que this est&lt;br /&gt;
l'instance de base, auquel cas &quot;super.method.apply(super)&quot; est vraiment&lt;br /&gt;
l'equivalent de super.method() et ca c'est une super bonne nouvelle&lt;br /&gt;
puisqu'avec ca tu peux utiliser ton arguments array :).&lt;/p&gt;
&lt;p&gt;je viens de faire un tests sous MX et c'est clair, en utilisant super.doIt.apply(super), les methodes sont appliquees proprements dans la chaine de l'heritage &lt;strong&gt;ET&lt;/strong&gt; this pointe bien sur l'instance de base. C'est merveilleux &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_biggrin.gif&quot; alt=&quot;:D&quot; class=&quot;smiley&quot; /&gt;&lt;br /&gt;
&lt;code class=&quot;actionscript&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// grandparent&lt;/span&gt;&lt;br /&gt;
pp1 = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
pp1.&lt;span style=&quot;color: #0066CC;&quot;&gt;prototype&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;trace&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;doIt in pp1 - &amp;quot;&lt;/span&gt; + &lt;span style=&quot;color: #0066CC;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// and assigning a proprety to this for the road &amp;lt;img src=&amp;quot;http://common.lalex.com/themes/devblog/smilies/icon_smile.gif&amp;quot; alt=&amp;quot;:)&amp;quot; class=&amp;quot;smiley&amp;quot; /&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;b&lt;/span&gt; = &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;toto&amp;quot;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// parent&lt;/span&gt;&lt;br /&gt;
p1 = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
p1.&lt;span style=&quot;color: #0066CC;&quot;&gt;prototype&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; pp1&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
p1.&lt;span style=&quot;color: #0066CC;&quot;&gt;prototype&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;trace&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;doIt in p1 - &amp;quot;&lt;/span&gt; + &lt;span style=&quot;color: #0066CC;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt;.&lt;span style=&quot;color: #0066CC;&quot;&gt;apply&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// child&lt;/span&gt;&lt;br /&gt;
c1 = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
c1.&lt;span style=&quot;color: #0066CC;&quot;&gt;prototype&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; p1&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
c1.&lt;span style=&quot;color: #0066CC;&quot;&gt;prototype&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;trace&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;doIt in c1 - &amp;quot;&lt;/span&gt; + &lt;span style=&quot;color: #0066CC;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt;.&lt;span style=&quot;color: #0066CC;&quot;&gt;apply&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// creating an instance of c1&lt;/span&gt;&lt;br /&gt;
o1 = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; c1&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// uniquely identifying this object by assigning a custom property&lt;/span&gt;&lt;br /&gt;
o1.&lt;span style=&quot;color: #006600;&quot;&gt;a&lt;/span&gt; = &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;tata&amp;quot;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// test&lt;/span&gt;&lt;br /&gt;
o1.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// is the property there?&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0066CC;&quot;&gt;trace&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;o1.&lt;span style=&quot;color: #006600;&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/code&gt;
ca nous donne:&lt;quote&gt;doIt in c1 - tata
doIt in p1 - tata
doIt in pp1 - tata
toto&lt;/quote&gt;
EtT donc apres ca, tu peux passer l'arguments array, c'est pile poil:&lt;code class=&quot;actionscript&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// grandparent&lt;/span&gt;&lt;br /&gt;
pp1 = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
pp1.&lt;span style=&quot;color: #0066CC;&quot;&gt;prototype&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;trace&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;pp1: &amp;quot;&lt;/span&gt; + &lt;span style=&quot;color: #0066CC;&quot;&gt;arguments&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// parent&lt;/span&gt;&lt;br /&gt;
p1 = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
p1.&lt;span style=&quot;color: #0066CC;&quot;&gt;prototype&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; pp1&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
p1.&lt;span style=&quot;color: #0066CC;&quot;&gt;prototype&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;trace&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;p1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt;.&lt;span style=&quot;color: #0066CC;&quot;&gt;apply&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;, &lt;span style=&quot;color: #0066CC;&quot;&gt;arguments&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// child&lt;/span&gt;&lt;br /&gt;
c1 = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
c1.&lt;span style=&quot;color: #0066CC;&quot;&gt;prototype&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; p1&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
c1.&lt;span style=&quot;color: #0066CC;&quot;&gt;prototype&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;trace&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;c1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt;.&lt;span style=&quot;color: #0066CC;&quot;&gt;apply&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;, &lt;span style=&quot;color: #0066CC;&quot;&gt;arguments&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// creating an instance of c1&lt;/span&gt;&lt;br /&gt;
o1 = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; c1&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// uniquely identifying this object by assigning a custom property&lt;/span&gt;&lt;br /&gt;
o1.&lt;span style=&quot;color: #006600;&quot;&gt;a&lt;/span&gt; = &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;tata&amp;quot;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// test&lt;/span&gt;&lt;br /&gt;
o1.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;salut&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Lalex&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;putain&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;ca&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;marche&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/code&gt;&lt;br /&gt;
output&lt;quote&gt;c1&lt;br /&gt;
p1&lt;br /&gt;
pp1: salut,Lalex,putain,ca,marche&lt;/quote&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
J'ai une petite idee pour une implementation de clone comme dans java mais je posterai ca dans l'autre thread.&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - LAlex</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c224</link>
    <guid isPermaLink="false">urn:md5:61e54431317c192f7b98ad582fc4a232</guid>
    <pubDate>Fri, 17 Oct 2003 14:08:38 +0000</pubDate>
    <dc:creator>LAlex</dc:creator>
    
    <description>&lt;p&gt;Au fait timoth' &gt;&gt; je ne cherche pas à tout découvrir, mais a trouver la logique ... &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; aprés s'il ont développé ca comme des sagouins, je m'en moque un peu, tant que ca marche et que ca garde une certaine logique ... &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_razz.gif&quot; alt=&quot;:P&quot; class=&quot;smiley&quot; /&gt; Il ne faut pas oublier que passer du &quot;prototype-based&quot; au &quot;class-based&quot; fait aussi changer la logique, alors quand on doit mixer les deux, c'est assez chaud quand même ... :roll:&lt;/p&gt;
&lt;p&gt;Merci en tout cas de tes éclairages la dessus ... je vais essayer de trouver d'autres trucs un peu zarb pour qu'on puissen en disctuer !!! &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_biggrin.gif&quot; alt=&quot;:D&quot; class=&quot;smiley&quot; /&gt; :lalex:&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - LAlex</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c223</link>
    <guid isPermaLink="false">urn:md5:c92490e24104b3de609656acc3f1e586</guid>
    <pubDate>Fri, 17 Oct 2003 13:57:28 +0000</pubDate>
    <dc:creator>LAlex</dc:creator>
    
    <description>&lt;p&gt;Arf ... c'est crevant hein ?!? &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_biggrin.gif&quot; alt=&quot;:D&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Je connaissais la propriété __constructor__, je vais fouiller de ce côté la ... &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; Pour info, cette propriété arrive bien à contrecarer le bug de this.constructor, parce qu'elle correspond bien au constructeur de la classe ...&lt;br /&gt;
Pour info, il faut utiliser l'accés en tant que tableau associatif, sinon le compilo ne vous laisse pas faire. Donc, il faut se servir de &lt;strong&gt;this[&quot;__constructor__&quot;]&lt;/strong&gt; ...&lt;/p&gt;
&lt;p&gt;D'ailleurs, la voila ma méthode clone() ! &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_cool.gif&quot; alt=&quot;8)&quot; class=&quot;smiley&quot; /&gt; (on mélange un peu les deux posts la :?)&lt;code class=&quot;actionscript&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; clone&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0066CC;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;__constructor__&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - Timothee Groleau</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c220</link>
    <guid isPermaLink="false">urn:md5:19e3276c14c8afa922a8705d4aad5074</guid>
    <pubDate>Fri, 17 Oct 2003 13:27:30 +0000</pubDate>
    <dc:creator>Timothee Groleau</dc:creator>
    
    <description>&lt;p&gt;&gt; en fait, j'aimerais bien comprendre comment se calcule&lt;br /&gt;
&gt; dynamiquement super&lt;/p&gt;
&lt;p&gt;Et oh dis! Faut savoir s'arreter hein ;)! J'deconne, comme piste, va jeter un coup d'oeil a __constructor__ (avec deux underscores de chaque cote). Utiliser cette propriete est la facon d'activer super sous Flash MX sans utiliser l'heritage par new. J'en parle dans mon article:&lt;br /&gt;
&lt;a href=&quot;http://timotheegroleau.com/Flash/articles/private_static.htm&quot; rel=&quot;nofollow&quot;&gt;http://timotheegroleau.com/Flash/articles/private_static.htm&lt;/a&gt;&lt;br /&gt;
et le poste d'origine de Peter Edwards est la:&lt;br /&gt;
&lt;a href=&quot;http://chattyfig.figleaf.com/ezmlm/ezmlm-cgi/1/28068&quot; rel=&quot;nofollow&quot;&gt;http://chattyfig.figleaf.com/ezmlm/ezmlm-cgi/1/28068&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Donc clairement, super est base ou du moins utilise __constructor__. A partir de la a toi de trouver un arbre logique ou un truc comme ca pour nous sortir l'algorithme de recherche de super :). Moi j'arrete la pour aujourd'hui (fatigue le Timoth). Demain peu-etre et encore, je pense que je ferai juste quelques tests avec super et apply. Je dois avouer que sur ce coup la, le detail absolu ne me motive pas trop :P. Enfin on verra bien demain.&lt;/p&gt;
&lt;p&gt;Pour decouvrir ce qui se passe, Peter Edwards avait utilise un editeur hexa et s'est tape une inspection des dll flash et du player. Autant dire que c'est du boulot et que faut assurer en assembleur. Bon courage si tu t'y lances.&lt;/p&gt;
&lt;p&gt;Mais si tu decouvres tout, que va-t-il rester de la &quot;magie&quot; de Flash ;)?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - LAlex</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c218</link>
    <guid isPermaLink="false">urn:md5:55f64ed91c5ae59c8ca3a25ea9b074b7</guid>
    <pubDate>Fri, 17 Oct 2003 13:16:50 +0000</pubDate>
    <dc:creator>LAlex</dc:creator>
    
    <description>&lt;p&gt;Bon, j'ai supprimé mes deux derniers commentaires, j'avais trop honte ... &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_razz.gif&quot; alt=&quot;:P&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Donc, pour revenir a des bases correctes, on sait que :&lt;br /&gt;
- super est calculé dynamiquement&lt;br /&gt;
- super est un objet, mais on peut l'appeler en tant que fonction (ca j'ai du mal ... :?)&lt;br /&gt;
- le constructeur de super a le même prototype que la classe située deux niveaux plus haut dans l'héritage?!? 8O (voir le test plus haut : Test 4)&lt;br /&gt;
- lorsque l'on teste &lt;em&gt;super instanceof LittleChild&lt;/em&gt;, &lt;em&gt;super instanceof Child&lt;/em&gt;, &lt;em&gt;super instanceof Parent&lt;/em&gt;, les trois renvoient &lt;strong&gt;false&lt;/strong&gt;&lt;br /&gt;
- Apres le premier super.doIt.apply, on se retrouve donc dans Child.doIt, avec super en tant que this, et on a this instanceof LittleChild qui retourne true ... donc pourquoi la considération précédente est-elle fausse ?!? 8O&lt;/p&gt;
&lt;p&gt;Bref, je ne sais toujours pas d'ou viens ce super !!! :?&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - LAlex</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c217</link>
    <guid isPermaLink="false">urn:md5:c449b5f0a58bfc7f70cf9fe3d7bc4c66</guid>
    <pubDate>Fri, 17 Oct 2003 12:47:38 +0000</pubDate>
    <dc:creator>LAlex</dc:creator>
    
    <description>&lt;p&gt;&lt;code class=&quot;actionscript&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; doIt&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt;.&lt;span style=&quot;color: #0066CC;&quot;&gt;apply&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/code&gt;Didiou !!! 8O Ca marche !!! &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_cool.gif&quot; alt=&quot;8)&quot; class=&quot;smiley&quot; /&gt; Je l'avais sous les yeux et je n'y ai pas pensé une seconde .... :roll: Merci Timoth' ! &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_biggrin.gif&quot; alt=&quot;:D&quot; class=&quot;smiley&quot; /&gt; Donc la ca marche pour un &lt;em&gt;trace&lt;/em&gt; tout bête, je vais voir ce qui se passe ensuite au niveau du &lt;em&gt;this&lt;/em&gt; selon le niveau dans la chaine d'héritage ... &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Mais bon, le faire marcher n'est pas tout, j'aimerais aussi comprendre un peu comment ca se fait ... en fait, j'aimerais bien comprendre comment se calcule dynamiquement super, mais la je suis en train de m'embrouiller complètement ... :?&lt;br /&gt;
Il reste aussi une petite question en suspend, c'est de savoir qu'est-ce qui se passe quand on fait &lt;em&gt;super()&lt;/em&gt; ... :roll: Comment peut-on faire appel à une fonction alors que super est un objet ? 8O&lt;/p&gt;
&lt;p&gt;Pour LittleChild, je savais bien que quelqu'un me ferait la remarque, mais je savais absolument pas comment dire ca, alors j'ai procédé à une anglisation barbare du mot français !!! &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_biggrin.gif&quot; alt=&quot;:D&quot; class=&quot;smiley&quot; /&gt; &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_razz.gif&quot; alt=&quot;:P&quot; class=&quot;smiley&quot; /&gt; &lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - Timothee Groleau</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c216</link>
    <guid isPermaLink="false">urn:md5:d129ac7f6b9f4d98d4c13ed0ea7d2dff</guid>
    <pubDate>Fri, 17 Oct 2003 12:36:36 +0000</pubDate>
    <dc:creator>Timothee Groleau</dc:creator>
    
    <description>&lt;p&gt;Je passe la journee sur ton blog aujourd'hui, mon boss va me tuer :P.&lt;/p&gt;
&lt;p&gt;Juste une petite note en plus, this et super ne sont pas completement lies comme l'un une propriete de l'autre puisque dans une chaine de classes, super est invoque normallement de parent en parent (si apply n'est pas utilise) et donc represente une classe differente a chaque fois alors que this pointe toujours sur le meme object dans la chaine.&lt;/p&gt;
&lt;p&gt;Sinon, dans ton code:&lt;code class=&quot;actionscript&quot;&gt;obj.&lt;span style=&quot;color: #006600;&quot;&gt;method&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
obj.&lt;span style=&quot;color: #006600;&quot;&gt;method&lt;/span&gt;.&lt;span style=&quot;color: #0066CC;&quot;&gt;apply&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;obj&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/code&gt;les deux expressions sont completement equivalentes. Dans le code que tu avais tout la haut :), ce n'est pas ce qui se passait, tu avais:&lt;code class=&quot;actionscript&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; doIt&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt;.&lt;span style=&quot;color: #0066CC;&quot;&gt;apply&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0066CC;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// &amp;lt;- this et super ne sont pas le meme object&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/code&gt;
Comme on disait, this et super sont tous les deux determines dynamiquement mais leur relation change suivant la hauteur dans la chaine de l'heritage (je sais vraiment pas comment appeler ca :P). C'est la qu'est la difference.
A la rigueur, je viens d'avoir une idee, qu'est-ce que ca donne si tu essayes ca:&lt;code class=&quot;actionscript&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; doIt&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt;.&lt;span style=&quot;color: #0066CC;&quot;&gt;apply&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Je pense pas que ca puisse vraiment marcher mais comme l'expression est sense etre equivalente a &quot;super.doIt()&quot;, ca vaut le coup de tenter :). J'essairai sous Flash MX tout a l'heure (je l'ai pas sous la main).&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
Sinon un truc qui n'a rien a voir, la famille en anglais, c'est: Parent, Child, GrandChild :D. LittleChild, ca veut qu'il est petit en age ou en taille. J'abuse a fond de faire une remarque comme ca, mais ca m'a fait sourire ;):P.&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - LAlex</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c210</link>
    <guid isPermaLink="false">urn:md5:18bc5fdf1bbe700f5d49d684d96e0d28</guid>
    <pubDate>Fri, 17 Oct 2003 11:36:01 +0000</pubDate>
    <dc:creator>LAlex</dc:creator>
    
    <description>&lt;p&gt;&lt;quote&gt;Tu l'as deja dit dans un de tes posts, si MM avait fait un vrai compilateur pour AS2 au lieu d'un traducteur AS2-&gt;AS1, on aurait sans doute pas tous ces problemes :?&lt;/quote&gt;Et la on est partis pour au moins un an et demi d'attente. En fait, MX 2004 veut certainement convaincre les programmeurs Java/C# ... mais je pense que c'est pas gagné ! &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_biggrin.gif&quot; alt=&quot;:D&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - LAlex</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c208</link>
    <guid isPermaLink="false">urn:md5:08d7c27a4e3cc0161040182cb03e100e</guid>
    <pubDate>Fri, 17 Oct 2003 11:31:34 +0000</pubDate>
    <dc:creator>LAlex</dc:creator>
    
    <description>&lt;p&gt;C'est vrai qu'ActionScript a des avantages qui créent également des inconvénients ... :roll: Mais ce qui me gène, c'est comment fait super pour fontionner lorsqu'on l'utilise sans apply ... le this est pourtant le même ! 8O&lt;/p&gt;
&lt;p&gt;Pour moi, il me parrait complètement illogique que ces deux instructions aient des comportement différents ...&lt;code class=&quot;actionscript&quot;&gt;obj.&lt;span style=&quot;color: #006600;&quot;&gt;method&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
obj.&lt;span style=&quot;color: #006600;&quot;&gt;method&lt;/span&gt;.&lt;span style=&quot;color: #0066CC;&quot;&gt;apply&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;obj&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;C'est seulement du au fait que j'ai du mal à concevoir cela avec une syntaxe &quot;class-based&quot; ... mais c'est vrai qu'en AS1, ca parait beaucoup plus logique ! &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - Timothee Groleau</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c207</link>
    <guid isPermaLink="false">urn:md5:e6c24c0ca89d2a1e8f9e2b3cc4dbdea7</guid>
    <pubDate>Fri, 17 Oct 2003 11:26:46 +0000</pubDate>
    <dc:creator>Timothee Groleau</dc:creator>
    
    <description>&lt;p&gt;Cela dit, tout ce que je dis est vrai (enfin j'espere) dans la mesure ou on se base sur AS1. Tu l'as deja dit dans un de tes posts, si MM avait fait un vrai compilateur pour AS2 au lieu d'un traducteur AS2-&gt;AS1, on aurait sans doute pas tous ces problemes :?.&lt;/p&gt;
&lt;p&gt;Comme tu ne travailles qu'en AS2, je comprend ta frustration.&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - Timothée Groleau</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c204</link>
    <guid isPermaLink="false">urn:md5:480f4c4a602c59b29332b34e7cae3c2f</guid>
    <pubDate>Fri, 17 Oct 2003 11:15:54 +0000</pubDate>
    <dc:creator>Timothée Groleau</dc:creator>
    
    <description>&lt;p&gt;&gt; Ca va un peu à l'encontre du concept d'encapsulation ca non ?&lt;/p&gt;
&lt;p&gt;Completement, mais faut voir quand meme que le constructeur de la classe parent est public et avec lui les parametres qu'il attend. Ces parametres seraient connus meme pour une classe externe. C'est un des inconvenients de l'heritage, il y a quelques paragraphes a ce sujet dans &quot;Design Patterns&quot; par GoF. L'heritage a ses avantages mais comme generalement la classe fille connait l'implementation de la classe mere et parfois se base dessus, ca induit une grosse dependance (coupling) et ca va contre l'encapsulation. Ce n'est pas specifique a Flash mais a la POO en generale. &quot;Design Pattern&quot; favorise donc plutot la composition a l'heritage quand c'est possible.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&gt; Donc d'aprés ce que tu dis, super est donc bien lié à une instance&lt;br /&gt;
&gt; et pas à une classe ce qui n'a rien de normal&lt;/p&gt;
&lt;p&gt;Hmm, oui, je pense cependant qu'il ne faut pas le voir comme ca. super est comme le keyword this dans la mesure ou il change de sens dans une fonction donnee, suivant l'endroit d'ou elle est appelee. C'etait deja comme ca sous Flash MX:&lt;br /&gt;
&lt;code class=&quot;actionscript&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// premiere famille de classe&lt;/span&gt;&lt;br /&gt;
p1 = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
p1.&lt;span style=&quot;color: #0066CC;&quot;&gt;prototype&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;trace&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;doIt in p1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
c1 = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
c1.&lt;span style=&quot;color: #0066CC;&quot;&gt;prototype&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; p1&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
c1.&lt;span style=&quot;color: #0066CC;&quot;&gt;prototype&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;trace&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;doIt in c1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// deuxieme famille de classe&lt;/span&gt;&lt;br /&gt;
p2 = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
p2.&lt;span style=&quot;color: #0066CC;&quot;&gt;prototype&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;trace&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;doIt in p2&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
c2 = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
c2.&lt;span style=&quot;color: #0066CC;&quot;&gt;prototype&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; p2&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
c2.&lt;span style=&quot;color: #0066CC;&quot;&gt;prototype&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;trace&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;doIt in c2&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// test avec la premiere famille&lt;/span&gt;&lt;br /&gt;
o1 = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; c1&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
o1.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #0066CC;&quot;&gt;trace&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;===&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// c1 - p1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// test avec la deuxieme famille&lt;/span&gt;&lt;br /&gt;
o2 = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; c2&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
o2.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// c2 - p2&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0066CC;&quot;&gt;trace&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;===&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// on &amp;quot;vole&amp;quot; la methode doIt d'une instance l'autre&lt;/span&gt;&lt;br /&gt;
o2.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt; = o1.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt;;&lt;br /&gt;
o2.&lt;span style=&quot;color: #006600;&quot;&gt;doIt&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// trace c1 - p2 &lt;/span&gt;&lt;/code&gt;
La sortie donne:
&lt;code class=&quot;actionscript&quot;&gt;doIt &lt;span style=&quot;color: #b1b100;&quot;&gt;in&lt;/span&gt; c1&lt;br /&gt;
doIt &lt;span style=&quot;color: #b1b100;&quot;&gt;in&lt;/span&gt; p1&lt;br /&gt;
===&lt;br /&gt;
doIt &lt;span style=&quot;color: #b1b100;&quot;&gt;in&lt;/span&gt; c2&lt;br /&gt;
doIt &lt;span style=&quot;color: #b1b100;&quot;&gt;in&lt;/span&gt; p2&lt;br /&gt;
===&lt;br /&gt;
doIt &lt;span style=&quot;color: #b1b100;&quot;&gt;in&lt;/span&gt; c1&lt;br /&gt;
doIt &lt;span style=&quot;color: #b1b100;&quot;&gt;in&lt;/span&gt; p2&amp;nbsp; &amp;lt;- c&lt;span style=&quot;color: #ff0000;&quot;&gt;'est la la cle &lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Quand on a assigne une methode d'une classe a l'autre le sens de super a change dans la methode et a appele la methode dans la super classe de l'instance en cours.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&gt; Si super pointait tout simplement sur le prototype de la classe&lt;br /&gt;
&gt; parent, ce serait plus simple quand même&lt;/p&gt;
&lt;p&gt;C'est vrai mais c'est impossible en actionscript et en ECMAScript 3. Une fonction est une methode seulement si elle est appelee a partir d'un object. Sinon c'est juste une fonction que tu peux assigner a n'importe quel object. Du coup le sens de super ne peut pas etre fixe dans une fonction et doit etre determine dynamiquement a l'execution, comme le sens de this.&lt;/p&gt;
&lt;p&gt;En Java, on a pas ce probleme puisque tu ne peux pas ballader des methodes d'une classe a une autre comme ca et tu ne peux pas non plus appeler une methode quelconque sur un object quelconque comme le fait apply.&lt;/p&gt;
&lt;p&gt;Je ne sais pas si on peut dire que tout ca est &quot;normal&quot; pour un language OO. Mais je pense qu'il faut garder a l'esprit les contraintes d'ActionScript, dans la conception meme du language. Je n'ai jamais touche a JScript.NET mais ce serait interessant de voir comment ca se passe la bas.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&gt; Le comportement est celui auquel on peut s'attendre s'il&lt;br /&gt;
&gt; existait un this.super ...&lt;/p&gt;
&lt;p&gt;Oui c'est vrai, comme this et super changent en meme temps, c'est comme s'ils etaient lies.&lt;/p&gt;
&lt;p&gt;En tout cas ca reste une facon de voir les choses. En ce qui me concerne, je ne vois pas ca comme un bug mais comme une contrainte du language. Le coup de constructor qu'on a trouve, ca oui c'est un bug.&lt;/p&gt;
&lt;p&gt;Timoth'&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - LAlex</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c202</link>
    <guid isPermaLink="false">urn:md5:977b6981964d9d06f9d8c2bc774e36af</guid>
    <pubDate>Fri, 17 Oct 2003 10:22:10 +0000</pubDate>
    <dc:creator>LAlex</dc:creator>
    
    <description>&lt;p&gt;&lt;quote&gt;Il faut pas etre feignant et ecrire tous les parametres a la main&lt;/quote&gt;C'est bien quand tu connais le nombre de paramètres, mais imagine qu'on ait 3 ou 4 niveaux d'héritages, si on change les paramètres de la classe du haut, il faut changer toutes les classes ? 8O Ca va un peu à l'encontre du concept d'encapsulation ca non ? :roll:&lt;/p&gt;
&lt;p&gt;Donc d'aprés ce que tu dis, super est donc bien lié à une instance et pas à une classe ce qui n'a rien de normal :roll:&lt;br /&gt;
Si &lt;em&gt;super&lt;/em&gt; pointait tout simplement sur le prototype de la classe parent, ce serait plus simple quand même ... le tout est de savoir comment lui transmettre l'objet this lors d'un appel &quot;classique&quot; à une méthode (avec les parenthèses)... :?&lt;/p&gt;
&lt;p&gt;Au vu du code que tu montres concernant l'impémentation de apply, on voit bien que le problème ne vient pas de apply, mais bien de la manière dont est géré &lt;em&gt;super&lt;/em&gt;. Le comportement est celui auquel on peut s'attendre s'il existait un &lt;strong&gt;&lt;em&gt;this.super&lt;/em&gt;&lt;/strong&gt; ... :?&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - Timothee Groleau</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c200</link>
    <guid isPermaLink="false">urn:md5:6f44b1c8dd02a52e389ada8dc0caee7c</guid>
    <pubDate>Fri, 17 Oct 2003 09:54:35 +0000</pubDate>
    <dc:creator>Timothee Groleau</dc:creator>
    
    <description>&lt;p&gt;Et donc bien sur la conclusion de tout ca, c'est qu'il faut pas utiliser .apply ou .call pour appeler une methode de la classe mere pour passer tous les parametres en vracs avec arguments.&lt;/p&gt;
&lt;p&gt;Il faut pas etre feignant et ecrire tous les parametres a la main :). J'ai pas teste mais je pense que c'est la meme chose en Flash MX AS1.&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Bug (?) : super, qui es-tu donc ? - Timothee Groleau</title>
    <link>http://blog.lalex.com/post/2003/10/16/Bug-%3A-super-qui-es-tu-donc#c199</link>
    <guid isPermaLink="false">urn:md5:9700fe450a410ec081b0ff5420284bc1</guid>
    <pubDate>Fri, 17 Oct 2003 09:49:09 +0000</pubDate>
    <dc:creator>Timothee Groleau</dc:creator>
    
    <description>&lt;p&gt;Oh merde!! La coloration de syntax a detruit mon code :?. J'avais utilise $_func pour la fonction temporaire.&lt;/p&gt;
&lt;p&gt;Je le reecris differemment, en esperant que ca passe cette fois:&lt;code class=&quot;actionscript&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// apply se faisait a partir d'une function temporaire appliquee a l'object&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0066CC;&quot;&gt;apply&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;obj, func&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; obj.__func = func;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; obj.__func&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;delete&lt;/span&gt; obj.__func;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// voila l'object&lt;/span&gt;&lt;br /&gt;
o = &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;myVar:&lt;span style=&quot;color: #cc66cc;&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// voila la fonction&lt;/span&gt;&lt;br /&gt;
myFunc = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;myVar&lt;/span&gt; = &lt;span style=&quot;color: #cc66cc;&quot;&gt;6&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// et on utilise apply&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0066CC;&quot;&gt;trace&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;o.&lt;span style=&quot;color: #006600;&quot;&gt;myVar&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// 5&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0066CC;&quot;&gt;apply&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;o, myFunc&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #0066CC;&quot;&gt;trace&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;o.&lt;span style=&quot;color: #006600;&quot;&gt;myVar&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// 6 &lt;/span&gt;&lt;/code&gt;&lt;/p&gt;</description>
  </item>
      
</channel>
</rss>