浏览代码

Ajout pages Objets

Benoît Hubert 7 年之前
父节点
当前提交
e1ff495bb7

文件差异内容过多而无法显示
+ 1 - 1
react-tuto/src/markdown.json


+ 18 - 0
react-tuto/src/markdown/1. Les bases/7. Objets.md

@@ -0,0 +1,18 @@
+JavaScript permet d'utiliser des objets. Là encore, étant un langage dynamique,
+il offre une grande souplesse pour créer et manipuler ceux-ci.
+
+Ajoute ceci au script :
+```javascript
+var personne = new Object();
+personne.nom = "John Difool";
+personne.afficheNom = function() {
+  console.log("Je suis", this.nom);
+}
+personne.afficheNom();
+```
+<blockquote>
+Bien que JS permette de définir des "classes" (pas exactement avec le même sens qu'en Java),
+il permet aussi de créer des objets librement.
+</blockquote>
+
+Ici notre objet a deux propriétés, `nom`, une chaîne, et `afficheNom`, une fonction.

+ 26 - 0
react-tuto/src/markdown/1. Les bases/8. Objets - \"classes\".md

@@ -0,0 +1,26 @@
+<blockquote>
+On peut définir des "classes" en JS. Mais elles fonctionnent un peu différemment des
+autres langages objets !
+</blockquote>
+
+```javascript
+function Personne(nom) {
+  this.nom = nom;
+}
+Personne.prototype.afficheNom = function() {
+  console.log("Je suis", this.nom);
+}
+var luke = new Personne('Luke Skywalker');
+var leia = new Personne('Leia Organa Solo');
+luke.afficheNom();
+leia.afficheNom();
+```
+
+* Le "constructeur", qui définit la "classe", est une simple fonction !
+* On ajoute des méthodes à la classe en les ajoutant à la propriété `prototype`
+de la fonction/constructeur.
+* Au passage, ça signifie qu'une fonction est aussi un objet !
+
+Ne te prends pas trop la tête avec ça pour l'instant ! Sache juste que "ça existe",
+et que ça permet de créer des objets à partir d'un certain "modèle" (d'où le terme
+de prototype).

+ 21 - 0
react-tuto/src/markdown/1. Les bases/9. Objets - syntaxe littérale

@@ -0,0 +1,21 @@
+On a vu comment créer des objets avec `new` suivi d'un constructeur : soit le "constructeur" générique `Object`,
+soit un constructeur spécifique (de notre cru, ou fourni par JS, comme `Date`).
+
+Mais on a souvent besoin de créer des objets plus simplement.
+
+<blockquote>
+La "syntaxe littérale" permet de définir un objet directement, via des paires
+<code>cle: valeur</code> séparées par des virgules, le tout entre accolades.
+</blockquote>
+
+```javascript
+var film = {
+  titre: 'Inception',
+  real: 'Christopher Nolan',
+  annee: 2010,
+  afficheInfos: function() {
+    console.log(this.titre, 'réalisé par', this.real, 'sorti en', this.annee);
+  }
+};
+film.afficheInfos();
+```