hello :)
les règles du fight club

1 - tu n'écouteras pas les spécifications de Adobe sur son langage
2 - tu aimeras le prototype et les fonctions constructeurs
3 - tu n'écouteras pas les spécifications de Adobe sur son langage

:)

Exemple... héritage en AS1 selon adobe :

ConstructorA = function() {}

ConstructorB = function() {}

ConstructorB.prototype = new ConstructorA() ;

alalala mais ce genre de code on le trouve dans la doc écrite par
Macromedia/Adobe.. mais en fait dans la vraie vie tu taperas :

ConstructorA = function() {}

ConstructorB = function() {}

ConstructorB.prototype.__proto__ = ConstructorA.prototype ;

Donc lire une doc c'est bien mais connaître son langage c'est autre chose :)
A la base ActionScript ou Javascript même combat avec la norme ECMAScript
262 ed3.. ensuite tu as une évolution vers la norme ES4 et l'AS3 qui se
situe entre les 2 :)

Dire que l'AS2 est une simple évolution de l'AS3... c'est faux :) AS2 c'est
de l'AS1 amélioré avec quelques notions de sécurité sur les objets avec
public/private et le typage fort surtout mais uniquement pendant la
compilation.

AS3 on passe à autre chose mais derrière tu as toujours le langage basé
ECMAScript avec fonction constructeur et prototype avec surtout dans la doc
de l'AS3 un passage une note dans la doc justement qui dit que
l'implémentation actuelle est pas forcément finale et qu'il est "possible"
qu'à l'avenir cela disparaisse...

Alors oui :) utiliser les classes AS3 c'est rapide, c'est sympa comme tout
etc... mais au final tu perds ton apply() sur la fonction constructeur, tu
pers la référence vers la fonction constructeur de la classe, tu perds la
possibilité de faire évoluer une instance au runtime et de lui changer
complètement son héritage à la volée, tu perds le ASSetPropFlags qui permet
de modifier dynamiquement la sécurité sur les propriétés d'un objet, tu
perds le arguments et son arguments.calller/arguments.caller

Tu perd pleins de trucs au final bien sympatiques ... alors oui on peut
faire sans tout cela mais sérieux parfois on se demande.. surtout pour le
apply dans le constructeur :)

On fait du code "crado" quand on maîtrise pas son langage :) On fait du bon
code quand on connait complètement son languaqe et que l'on sait exactement
quel outil utilisé le moment voulu selon la situation... me rappel cette
discussion sur le #include inutile ... car c'est un truc utile uniquement en
AS1... ce genre de réaction manque de profondeur à mon avis ;)

On te dit pas qu'il faut privilégier le prototype.. on te dit juste de pas
le mettre à la cave ;) Il est là , il sert, il est super important et quand
il faut s'en servir il faut pouvoir l'utiliser comme il faut :) C'est
d'ailleurs pour cela que la plupart des frameworks javascript sont pourris..
car les gens qui les développe essayent de faire des frameworks style JAVA
ou autre et essaient de virer le prototype ... ils ont vraiment pas compris
que le prototype est super important au niveau de l'orientation OOP du
langage.

Il faut donc surtout peser ses mots quand on parle de certaines choses car
justement la plupart des débutants qui lisent un message qui leur dit que le
prototype est un truc naze... le pensent vraiment du coup et passent à côté
de plein de chose ;)

Pour finir.. cela me fait penser à ces discussions au début de l'AS2 où des
mecs disaient que l'AS2 était un nouveau langage trop bien car proche du
"JAVA" lol Et encore maintenant pleins de développeur AS2/AS3 ne savent même
pas que l'AS2 c'est une surcouche de l'AS1, que le MXML c'est une surcouche
de de l'AS3 et qu'au final tout ce qui est fait en AS2 peut être fait en AS1
et tout ce qui est fait (ou presque) en MXML peut être fait en AS3 :)

L'idée est de pas dire tout simplement des banalités du style "prototype =
crado" .. mais de savoir à quoi il sert, d'où il vient, de pourquoi faut
l'utiliser et pourquoi il ne faut pas l'utiliser en AS3 dans certains autres
cas... idem pour tout le reste finalement (namespace, etc.. ) :)

eKA+ :)


> AS3 est une évolution de AS2... on est d'accord là dessus ?
> AS3 rajoute une façon de faire de l'héritage, avec le mot clé
> "extends" sur une classe. Pour rester compatible avec AS2, on peut
> toujours accéder au champs "prototype" de Object, mais comme indiqué
> sur le site suivant, on ne devrait pas le modifier directement.
>
> http://livedocs.adobe.com/flex/2/langref/migration.html
>
> "In ActionScript 3.0, direct manipulation of the prototype chain is
> not allowed. To create a subclass, use the extends statement in the
> subclass declaration."
>
> C'est dans ce sens que je dis "utiliser le champs prototype pour
> surcharger une methode, c'est crado", et c'est en ce sens que je dis
> aussi "AS3 doit rester compatible avec AS2 et c'est pour ça qu'on peut
> toujours accéder au champs prototype".
>
> Apparemment, vous n'êtes pas d'accord, trouvez vous que "prototype"
> est quelque chose de vraiment très important, et qu'il faut
> privilégier cette méthode pour dériver des classes, même en AS3 ?
> >
>

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "FCNG" de 
Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/FCNG?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à