POO et JavaScript UNE NOTION TROP INCOMPRISEMathieu ROBIN
« The Worlds Most Misunderstood Programming  Language » Douglas Crockford
• Mathieu ROBIN (@mathrobin) • 25 ans • Ingénieur logiciel chez Companeo • Contributeur Deve...
Classe Interface ClasseObjet Objet Objet ...
Classe Interface ClasseObjet Objet Objet ...
Objet
Number String ArrayFunction Object Date
Exceptions
undefined null NaN infinity
Tout objet a un prototype
Tout objet peut servir deprototype à un autre objet
Object est le pèrede tous les objets
Object.prototype ---> null
Bravo !
var objetNu = new Object();
objetNu: Object prototype: Object constructor: function Object() hasOwnProperty() isPrototypeOf() propertyIsE...
var monLitteral = {};
var monLitteral = [];
var monLitteral = { what : ConFoo, when : 2012, where : Montréal, why : 42, and-for : speaking};
 Pas besoin de ou de pour les clés Vous pouvez les utiliser quand même Exception : foo-bar  P...
Accès aux propriétés : console.log(monLitteral.what); // ConFoo console.log(monLitteral[when]); // 2012 console.log(mon...
Modification des propriétés : monLitteral.what = Confoo ; monLitteral[when] = Février-Mars 2012 ; monLitteral.who = Joh...
Suppression dune propriété : monLitteral.what = null ; monLitteral.when = undefined ; delete monLitteral.who ;
var monObjet = { what : ConFoo, when : 2012, where : Montréal};monObjet.sayHello = function () { console.l...
var sayHello = function () { console.log(Hello ConFoo !) ;}function sayHello () { console.log(Hello ConFoo !) ;}
if ( true ) { function sayHello () { console.log(Hello ConFoo !) ; }}else { function sayHello () { co...
Tout objet a un prototype
monObjet.prototype.name = John Doe ;monObjet.prototype.getName = function () { return this.name ;}
Object Objet A Objet B Objet CObjet A1 Objet A2 Objet A3
Object Objet A Objet B Objet CObjet A1 Objet A2 Objet A3
Object Objet A Objet B Objet CObjet A1 Objet A2 Objet A3
Object Objet A Objet B Objet CObjet A1 Objet A2 Objet A3
statichéritage privé
var monObjet = { what : ConFoo, when : 2012, where : Montréal, sayHello : function () { console....
var monObjetBis = monObjet ;
FAUX
Vous avez copié une référence
var ObjetPere = function () { console.log(hello); };ObjetPere.prototype.na
var objet = { name:Dark Vador};var fils = Object.create(objet) ;
Privé
function Container () { var secret = 3; function dec () { return secret; } this.getSecret = function () { retu...
Crédits PhotosDarin McClure : http://www.flickr.com/photos/darinrmcclureGeekphysical : http://www.flickr.com/photos/geekph...
https://joind.in/6084http://www.slideshare.net/mathrobin/poo -et-java-script-notion-trop-incomprise
Poo et JavaScript, une notion trop incomprise
Poo et JavaScript, une notion trop incomprise
Poo et JavaScript, une notion trop incomprise
Poo et JavaScript, une notion trop incomprise
Poo et JavaScript, une notion trop incomprise
Poo et JavaScript, une notion trop incomprise
Poo et JavaScript, une notion trop incomprise
Poo et JavaScript, une notion trop incomprise
of 51

Poo et JavaScript, une notion trop incomprise

JavaScript est un des langages les plus incompris au monde. Et notamment pour son approche particulière de la programmation objet. Je vous propose d'en faire un tour complet.
Published on: Mar 4, 2016
Published in: Technology      Sports      
Source: www.slideshare.net


Transcripts - Poo et JavaScript, une notion trop incomprise

  • 1. POO et JavaScript UNE NOTION TROP INCOMPRISEMathieu ROBIN
  • 2. « The Worlds Most Misunderstood Programming  Language » Douglas Crockford
  • 3. • Mathieu ROBIN (@mathrobin) • 25 ans • Ingénieur logiciel chez Companeo • Contributeur Developpez.com, communauté francophone de développeurs • Blogueur • http://www.mathieurobin.com • http://www.recettesensolo.com Twitter : @mathrobin Blog : MathieuRobin.com Rédacteur / Correcteur Developpez.com Chroniqueur francophone jQuery, jQuery UI, jQuery Mobile Accessoirement cuisinier
  • 4. Classe Interface ClasseObjet Objet Objet Objet
  • 5. Classe Interface ClasseObjet Objet Objet Objet
  • 6. Objet
  • 7. Number String ArrayFunction Object Date
  • 8. Exceptions
  • 9. undefined null NaN infinity
  • 10. Tout objet a un prototype
  • 11. Tout objet peut servir deprototype à un autre objet
  • 12. Object est le pèrede tous les objets
  • 13. Object.prototype ---> null
  • 14. Bravo !
  • 15. var objetNu = new Object();
  • 16. objetNu: Object prototype: Object constructor: function Object() hasOwnProperty() isPrototypeOf() propertyIsEnumerable() toLocaleString() toString() valueOf()
  • 17. var monLitteral = {};
  • 18. var monLitteral = [];
  • 19. var monLitteral = { what : ConFoo, when : 2012, where : Montréal, why : 42, and-for : speaking};
  • 20.  Pas besoin de ou de pour les clés Vous pouvez les utiliser quand même Exception : foo-bar  Présence dun caractère « illégal »  Utilisation dun mot réservé • Ne sapplique plus avec EcmaScript 5
  • 21. Accès aux propriétés : console.log(monLitteral.what); // ConFoo console.log(monLitteral[when]); // 2012 console.log(monLitteral.who); // undefined
  • 22. Modification des propriétés : monLitteral.what = Confoo ; monLitteral[when] = Février-Mars 2012 ; monLitteral.who = John Doe ;
  • 23. Suppression dune propriété : monLitteral.what = null ; monLitteral.when = undefined ; delete monLitteral.who ;
  • 24. var monObjet = { what : ConFoo, when : 2012, where : Montréal};monObjet.sayHello = function () { console.log(Hello ConFoo 2012 !) ;}
  • 25. var sayHello = function () { console.log(Hello ConFoo !) ;}function sayHello () { console.log(Hello ConFoo !) ;}
  • 26. if ( true ) { function sayHello () { console.log(Hello ConFoo !) ; }}else { function sayHello () { console.log(Hello world !) ; }}
  • 27. Tout objet a un prototype
  • 28. monObjet.prototype.name = John Doe ;monObjet.prototype.getName = function () { return this.name ;}
  • 29. Object Objet A Objet B Objet CObjet A1 Objet A2 Objet A3
  • 30. Object Objet A Objet B Objet CObjet A1 Objet A2 Objet A3
  • 31. Object Objet A Objet B Objet CObjet A1 Objet A2 Objet A3
  • 32. Object Objet A Objet B Objet CObjet A1 Objet A2 Objet A3
  • 33. statichéritage privé
  • 34. var monObjet = { what : ConFoo, when : 2012, where : Montréal, sayHello : function () { console.log(Hello ConFoo 2012 !) ; }};
  • 35. var monObjetBis = monObjet ;
  • 36. FAUX
  • 37. Vous avez copié une référence
  • 38. var ObjetPere = function () { console.log(hello); };ObjetPere.prototype.na
  • 39. var objet = { name:Dark Vador};var fils = Object.create(objet) ;
  • 40. Privé
  • 41. function Container () { var secret = 3; function dec () { return secret; } this.getSecret = function () { return dec(); }}var test = new Container() ;console.log( test.secret ) ; //undefinedconsole.log( test.getSecret() ) ; //3
  • 42. Crédits PhotosDarin McClure : http://www.flickr.com/photos/darinrmcclureGeekphysical : http://www.flickr.com/photos/geekphysicalMarc Wathieu : http://www.flickr.com/photos/marcwathieuTheresa Thompson : http://www.flickr.com/photos/theresasthompsonEsparta Palma : http://www.flickr.com/photos/espartaMaria Reyes-McDavis : http://www.flickr.com/photos/mariareyesmcdavisDenis Vahrushev : http://www.flickr.com/photos/dvahrushevShadowgate : http://www.flickr.com/photos/shadowgateEschipul : http://www.flickr.com/photos/eschipulEleaf : http://www.flickr.com/photos/eleaf
  • 43. https://joind.in/6084http://www.slideshare.net/mathrobin/poo -et-java-script-notion-trop-incomprise

Related Documents