From 006c3f5a42f1bb73c9fd208ad8cb8167998a97db Mon Sep 17 00:00:00 2001 From: William Petit Date: Mon, 30 Mar 2015 14:18:55 +0200 Subject: [PATCH] More Javascript --- javascript/base/img/chaine_prototypale.png | Bin 0 -> 21800 bytes javascript/base/index.html | 12 +- .../base/{heritage-1.md => modele-objet-1.md} | 19 +- javascript/base/modele-objet-2.md | 22 ++ javascript/base/modele-objet-3.md | 35 ++++ javascript/base/modele-objet-4.md | 5 + javascript/base/modularisation-1.md | 9 + javascript/base/modularisation-2.md | 7 + javascript/base/modularisation-3.md | 33 +++ javascript/base/modularisation-4.md | 10 + javascript/base/modularisation-5.md | 34 +++ javascript/base/modularisation-6.md | 11 + javascript/base/modularisation-7.md | 27 +++ javascript/base/plan.md | 4 +- javascript/ressources/chaine_prototypale.ep | 193 ++++++++++++++++++ 15 files changed, 409 insertions(+), 12 deletions(-) create mode 100644 javascript/base/img/chaine_prototypale.png rename javascript/base/{heritage-1.md => modele-objet-1.md} (52%) create mode 100644 javascript/base/modele-objet-2.md create mode 100644 javascript/base/modele-objet-3.md create mode 100644 javascript/base/modele-objet-4.md create mode 100644 javascript/base/modularisation-1.md create mode 100644 javascript/base/modularisation-2.md create mode 100644 javascript/base/modularisation-3.md create mode 100644 javascript/base/modularisation-4.md create mode 100644 javascript/base/modularisation-5.md create mode 100644 javascript/base/modularisation-6.md create mode 100644 javascript/base/modularisation-7.md create mode 100644 javascript/ressources/chaine_prototypale.ep diff --git a/javascript/base/img/chaine_prototypale.png b/javascript/base/img/chaine_prototypale.png new file mode 100644 index 0000000000000000000000000000000000000000..40c7b3d4b1ad9e52f9ffc96282e0e00ac58df80e GIT binary patch literal 21800 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 literal 0 HcmV?d00001 diff --git a/javascript/base/index.html b/javascript/base/index.html index eb071de..303b61a 100644 --- a/javascript/base/index.html +++ b/javascript/base/index.html @@ -37,7 +37,17 @@ 'fonctions-4', 'tableaux-1', 'tableaux-2', - 'heritage-1' + 'modele-objet-1', + 'modele-objet-2', + 'modele-objet-3', + 'modele-objet-4', + 'modularisation-1', + 'modularisation-2', + 'modularisation-3', + 'modularisation-4', + 'modularisation-5', + 'modularisation-6', + 'modularisation-7' ]; var slideshow = remark.create({ diff --git a/javascript/base/heritage-1.md b/javascript/base/modele-objet-1.md similarity index 52% rename from javascript/base/heritage-1.md rename to javascript/base/modele-objet-1.md index 65f33e4..f674ba4 100644 --- a/javascript/base/heritage-1.md +++ b/javascript/base/modele-objet-1.md @@ -1,29 +1,30 @@ -# .cadoles-slide-title[Héritage et chaîne prototypale] +# .cadoles-slide-title[Modèle objet (1/4)] Javascript est un langage objet orienté **prototype**. **Constructeur et opérateur `new`** ```js +// Le constructeur est une simple fonction function Person(name) { this.name = name; } +// "Méthode" statique +Person.methodeStatique = function() { + console.log('Methode statique'); +}; + +Person.methodeStatique(); + // "Méthode" d'instance Person.prototype.sayHello = function() { return 'Hello, my name is ' + this.name; }; -// On créait une instance de Person +// L'instanciation est réalisée avec l'ajout de l'opérateur 'new' var p = new Person('John Doe'); console.log(p.name); console.log(p.sayHello()); // -> 'Hello, my name is John Doe' ``` -**Ce qui peut déstabiliser:** -.cadoles-list.cadoles-small[ - -- Les méthodes et propriétées privées n'existent pas. -- Le prototype d'un objet peut être modifié/remplacé en cours d'exécution (les objets **déjà** seront également impactés). - -] diff --git a/javascript/base/modele-objet-2.md b/javascript/base/modele-objet-2.md new file mode 100644 index 0000000..ed84968 --- /dev/null +++ b/javascript/base/modele-objet-2.md @@ -0,0 +1,22 @@ +# .cadoles-slide-title[Modèle objet (2/4)] + +**Ce qui peut déstabiliser:** + +.cadoles-list.cadoles-small[ +- Les méthodes et propriétées privées n'existent pas. +- Le prototype d'un objet peut être modifié/remplacé en cours d'exécution (les objets **déjà** instanciés seront également impactés). +] +**Exemple** +```js +var Foo = function() {}; + +var f = new Foo(); + +f.bar(); // Erreur + +Foo.prototype.bar = function() { + console.log('bar'); +}; + +f.bar(); // -> 'bar' +``` diff --git a/javascript/base/modele-objet-3.md b/javascript/base/modele-objet-3.md new file mode 100644 index 0000000..f79c251 --- /dev/null +++ b/javascript/base/modele-objet-3.md @@ -0,0 +1,35 @@ +# .cadoles-slide-title[Modèle objet (3/4)] + +**Héritage** + +```js +function Animal() { + this.nom = ''; +} + +Animal.prototype.donnerNom = function(nom) { + this.nom = nom; +}; + +var a = new Animal(); +a.donnerNom('...'); + +function Chien() { + // On applique le constructeur d'Animal sur l'instance + Animal.call(this); +} + +// On créait un nouvel objet prototype à partir de celui d'Animal +Chien.prototype = Object.create(Animal.prototype); + +Chien.prototype.aboyer = function() { + console.log('Wouf !'); +}; + +var c = new Chien(); + +c.donnerNom('Beethoven'); +console.log(c.nom); +c.aboyer(); + +``` diff --git a/javascript/base/modele-objet-4.md b/javascript/base/modele-objet-4.md new file mode 100644 index 0000000..d2fc3e9 --- /dev/null +++ b/javascript/base/modele-objet-4.md @@ -0,0 +1,5 @@ +# .cadoles-slide-title[Modèle objet (4/4)] + +**Chaîne prototypale** + + diff --git a/javascript/base/modularisation-1.md b/javascript/base/modularisation-1.md new file mode 100644 index 0000000..83b4a90 --- /dev/null +++ b/javascript/base/modularisation-1.md @@ -0,0 +1,9 @@ +# .cadoles-slide-title[Modularisation (1/6)] + +.cadoles-list[ +- État des lieux +- Variable globale et S.E.A.F. +- Format "AMD" +- CommonJS +- Modules ES6 +] diff --git a/javascript/base/modularisation-2.md b/javascript/base/modularisation-2.md new file mode 100644 index 0000000..c97f0e7 --- /dev/null +++ b/javascript/base/modularisation-2.md @@ -0,0 +1,7 @@ +# .cadoles-slide-title[Modularisation (2/6)] + +.cadoles-list[ +- Javascript (jusqu'à ES6) n'intègre pas de mécanisme particulier afin de modulariser le code. +- L'envergure des projets Javascript devenant de plus en plus importante, différentes méthodes ont vu le jour dans les projets portées par la communauté. +- Certaines sont accompagnées de spécification facilitant l'inter-opérabilité des projets, d'autres tiennent plus de la convention. +] diff --git a/javascript/base/modularisation-3.md b/javascript/base/modularisation-3.md new file mode 100644 index 0000000..b9b8889 --- /dev/null +++ b/javascript/base/modularisation-3.md @@ -0,0 +1,33 @@ +# .cadoles-slide-title[Modularisation (3/6)] + +**Variable global et S.E.A.F.** + +> **S.E.A.F.:** _Self Executable Anonymous Function_ + +```js +(function(MyModule) { + + // Cette variable n'est pas visible en dehors du contexte de définition + // du module + var localVar = 'Hello World !'; + + // Fonction privée, utilisable à l'intérieur du module + function myPrivateFunc() { + console.log('Fonction privée !') + } + + // Fonction publique, utilisable via l'exposition publique de myModule + MyModule.myPublicFunc = function() { + console.log('Fonction publique !') + }; + + // Propriété publique + MyModule.foo = 'bar'; + +// Dans un navigateur, 'this' pointe vers Window (le contexte général) +}(MyModule = this.MyModule || {})); + +MyModule.myPublicFunc(); // -> 'Fonction publique !' +console.log(MyModule.foo); // -> 'bar' + +``` diff --git a/javascript/base/modularisation-4.md b/javascript/base/modularisation-4.md new file mode 100644 index 0000000..dec2887 --- /dev/null +++ b/javascript/base/modularisation-4.md @@ -0,0 +1,10 @@ +# .cadoles-slide-title[Modularisation (4/6)] + +**Avantages** +- Simple à mettre en place, méthode très répandue (ex: jQuery) +- Peu de surcoût d'exécution +- Pas de transformation à apporter au code pour le rendre exécutable dans le navigateur + +**Désavantages** +- Beaucoup de variantes, avec parfois des comportements légèrement différents +- Ne gère par les dépendances diff --git a/javascript/base/modularisation-5.md b/javascript/base/modularisation-5.md new file mode 100644 index 0000000..4d912d5 --- /dev/null +++ b/javascript/base/modularisation-5.md @@ -0,0 +1,34 @@ +# .cadoles-slide-title[Modularisation (5/6)] + +**Format AMD** + +> **AMD:** _Asynchronous Module Definition_ + +```js + +require('myModuleA', function() { + + var myModuleA = {}; + + var localVar = 'Hello World !'; + + function myPrivateFunc() { + console.log('Fonction privée !') + } + + // Fonction publique, utilisable via l'exposition publique de myModule + myModuleA.myPublicFunc = function() { + console.log('Fonction publique !') + }; + + return myModuleA; + +}); + +require('myModuleB', ['myModuleA'], function(myModuleA) { + + myModuleA.myPublicFunc(); + +}); + +``` diff --git a/javascript/base/modularisation-6.md b/javascript/base/modularisation-6.md new file mode 100644 index 0000000..59b6dc7 --- /dev/null +++ b/javascript/base/modularisation-6.md @@ -0,0 +1,11 @@ +# .cadoles-slide-title[Modularisation (6/6)] + +**Avantages** +- Gestion et injection des dépendances +- Inter-opérable avec les autres méthodes de modularisation via configuration +- Véritable [spécification](https://github.com/amdjs/amdjs-api/blob/master/AMD.md), de nombreux "loaders" compatibles existent +- "Lazy-loading" possible de certaines parties du code +- Possibilité de charger des ressources autres que du Javascript via un mécanisme de plugin (ressources type texte, templates, etc...) + +**Désavantages** +- Nécessite l'utilisation d'un "loader" diff --git a/javascript/base/modularisation-7.md b/javascript/base/modularisation-7.md new file mode 100644 index 0000000..3854029 --- /dev/null +++ b/javascript/base/modularisation-7.md @@ -0,0 +1,27 @@ +# .cadoles-slide-title[Modularisation (7/6)] + +**CommonJS** +```js +// ********************** +// * Fichier myModuleA.js +// ********************** + +var localVar = 'Hello World !'; + +function myPrivateFunc() { + console.log('Fonction privée !') +} + +// Fonction publique, utilisable via l'exposition publique de myModule +exports.myPublicFunc = function() { + console.log('Fonction publique !') +}; + +// ********************** +// * Fichier myModuleB.js +// ********************** + +var myModuleA = require('./myModuleA'); +myModuleA.myPublicFunc(); + +``` diff --git a/javascript/base/plan.md b/javascript/base/plan.md index 205d21e..a7db613 100644 --- a/javascript/base/plan.md +++ b/javascript/base/plan.md @@ -4,7 +4,7 @@ - Historique - Le langage -- L'héritage prototypal +- Le modèle objet - Modularisation - L'écosystème Javascript - Les alternatives @@ -22,7 +22,7 @@ - Objets - Fonctions - Tableaux -- L'héritage prototypal +- Le modèle objet - Modularisation - État des lieux - Variable globale diff --git a/javascript/ressources/chaine_prototypale.ep b/javascript/ressources/chaine_prototypale.ep new file mode 100644 index 0000000..6a1690b --- /dev/null +++ b/javascript/ressources/chaine_prototypale.ep @@ -0,0 +1,193 @@ + +Untitled Page1427708853703_90751264812#ffffff + + + + + + + + + age: 2
]]>
+ + +
nom: 'Beethoven'
age: 2
+
+
+ + + + + + + + + + + + + + + + + + ]]> + + +
aboyer()
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
donnerNom()
+
+
+ + + + + + + + + + + + + + + + + + + + +
toString()
+
+
+ + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file