|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 767 ![]() |
![]() Jean-Pierre Vincent vous propose un article de présentation sur la Programmation Orientée Objet en JavaScript. Javascript Orienté Objet : syntaxe de base des classes JavaScript à l'intention des développeurs PHPCitation:
Bonne lecture à tous et à l'auteur !PS : Si vous souhaitez voter pour ce message, faites-le plutôt sur le message de jpvincent qui est l'auteur de l'article
__________________
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
|
|
|
20
|
|
|
#2 |
![]() ![]() ![]() Inscription : mars 2008 Messages : 2 663 ![]() |
Article très intéressant. Bouts de codes à l'appui, ce qui permet de bien appréhender la transition du PhP vers le Javascript.
Merci pour cette démarche instructive. |
|
|
00
|
|
|
#3 |
|
Membre expérimenté
![]() Inscription : juillet 2010 Messages : 392 ![]() |
bon article , même si je déteste javascript. Non pas à cause du prototypage, mais parce que le développeur n'a pas le choix de la techno cliente finalement.
J'image ce qui aurait pu être le web si ruby ou python s'étaient imposé coté client. ECMA a fait un sale boulot, et il est trop tard pour changer quoi que ce soit , bref , les devs sont "coincés" avec javascript. Néanmoins les closures et les lambdas sont l'aspect le plus puissant de javascript. |
|
|
00
|
|
|
#4 | ||
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
Petite coquille dans le code PHP de la section "Classes statiques" :
Code :
Code :
print MY_APP_NAMESPACE\validation::isValidMail( 'mon@mail.com' ); |
||
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Matt Chef de projet NTIC Inscription : janvier 2003 Messages : 109 ![]() |
Merci pour cet article très intéressant.
Et j'en profite pour glisser que "oui je suis intéressé par la notion d'héritage en JS". |
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2006 Messages : 54 ![]() |
Je pense que ça rentre dans le thème de l'article : j'ai fait il y a quelques temps un script permettant de gérer les classes Javascript en simulant le véritable concept des objets (public, protected, private, extends).
Ce n'est évidemment pas un script à utiliser en production (quoique si vous êtes un fanatique pur et dur ...), mais je le trouve assez intéressant en tant que proof of concept de ce qu'est capable d'accomplir le JS en matière d'objets. http://arcanis.alwaysdata.net/classjs/class.js http://arcanis.alwaysdata.net/classj...testsuite.html Par ailleurs, en ce qui concerne les performances, un constat est réellement surprenant (et si quelqu'un découvre une erreur dans ma façon de compter, qu'il n'hésite pas, ça m'intéresse !) : il semblerait que, selon les navigateurs : - IE 7 : Ne fonctionne pas, je n'ai pas cherché à le rendre compatible. - Firefox : Environ 3x plus lent d'instancier un objet utilisant ma classe qu'un objet classique - Chrome : Ca se vaut, avec un léger avantage pour un objet classique - Opera : Donc là c'est le wtf : il est (semble-t-il) plus rapide d'instancier un objet de ma classe qu'un objet classique. Etrange, n'est-ce pas ? |
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 827 ![]() |
Ca tombe pile au moment ou je dois développer une appli ou le JS sera dominant par rapport au reste !
Cela aurait pu être intéressant d'avoir un paragraphe sur les possibilité qu'apporte chaque framewok pour la réalisation de class. |
|
00
|
|
|
#8 | |
|
Membre chevronné
![]() ![]() Inscription : février 2010 Messages : 120 ![]() |
Citation:
concernant chrome, j'ai souvent constaté que son comportement par rapport aux performances JS étaient radicalement différentes par rapport aux autres navigateurs : en général les IE et Firefox 3 sont d'accords pour préférer une méthode plutôt qu'une autre, alors que le V8 de Chrome affiche parfois des résultats inversés. Mais je pense de toute manière qu'il faut rester sur le plus petit dénominateur commun : IE6 ou 7. Si c'est optimisé pour ce navigateurs, ça n'est que rapide pour les autres @grunk : ça aurait été intéressant, mais juger d'une librairie sur ce critère ne me semble pas très pertinent, car c'est une fonction mineure qui doit être supportée un peu partout de la même manière. Juste une note sur les librairies : jQuery est très bien pour développer rapidement du scripting, rajouter des effets etc... Si tu pars sur une vraie appli Web, prend plutôt quelque chose de plus performant et solide, mais long à apprendre comme YUI3 ou Ext (payant) |
|
|
20
|
|
|
#9 | |||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 767 ![]() |
Citation:
__________________
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
|
|
|
#10 | ||
|
Membre éclairé
![]() Inscription : février 2009 Messages : 318 ![]() |
très bonne articles !!
Il y a là toutes les bonnes techniques à adopter en js.... espace de nom, créer des variables local "ou privé", via des fonctions anonymes auto-exécuté... C'est très bien ![]() ![]() Des petites remarque quand même !! Sur la sections des closures et variables privée. Etant dans un context POO, votre exemple est pas vraiment valable, car il retourne un objet anonyme, et non rattaché à une classe. Pour permettre des variables privé d'instance, il suffit de redéfinir les méthodes dans le constructeur. du genre: Code :
Sinon je trouve pas le lien -> contre performance des variables privées |
||
|
|
00
|
|
|
#11 | ||||
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 827 ![]() |
Je suis façe à un léger problème de portée de variable.
Soit l'extrait de classe suivant : Code :
J'ai dans un premier temps penser à modifier ma classe comme ceci : Code :
Des idées pour solutionner cela ? |
||||
|
00
|
|
|
#12 | ||
|
Nouveau Membre du Club
![]() Inscription : octobre 2006 Messages : 54 ![]() |
Enregistre this dans une closure.
Code :
|
||
|
00
|
|
|
#13 | ||
|
Membre chevronné
![]() ![]() Inscription : février 2010 Messages : 120 ![]() |
la réponse d'Arcanis est valable
sinon, en JS normal (oui, sans jQuery!), on peut appeller une méthode en lui donnant le scope exemple Code :
Sinon oui par défaut le browser donne le scope de l'objet DOM d'où provient l'évènement |
||
|
00
|
|
|
#14 |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 827 ![]() |
Merci à vous deux pour vos réponses.
La solution d'arcanis , marche parfaitement. @jpvincent De mémoire prototype permettait également de passer l'instance à une fonction de callback , je vais regarder du coté de jquery , pas de raison que ce soit pas possible. |
|
00
|
|
|
#15 | ||
|
Nouveau Membre du Club
![]() Inscription : octobre 2006 Messages : 54 ![]() |
Le soucis de call et d'apply, c'est que tu ne peux pas vraiment les utiliser pour des callbacks, sauf en rajoutant un peu de code pour englober les appels.
Au pire suffit de prototyper le code de Function : Code :
|
||
|
00
|
|
|
#16 |
|
Invité de passage
![]() |
Salut,
Merci pour cet article très intéressant, je suis moi même dans les difficultés de l'apprentissage du JS après le PHP... ça va m'aider @+ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com