Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
slam4:richclient:angularjs:prerequis [2015/01/21 01:09] – [Closure] jcheron | slam4:richclient:angularjs:prerequis [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 93: | Ligne 93: | ||
</ | </ | ||
- | Exemple : | + | **Exemple :** |
+ | La variable locale nom (Mozilla) est stockée dans la variable maFonction, correspondant à créerFonction() | ||
<sxh javascript> | <sxh javascript> | ||
function créerFonction() { | function créerFonction() { | ||
Ligne 109: | Ligne 111: | ||
==== Classe et encapsulation ==== | ==== Classe et encapsulation ==== | ||
+ | Il est possible de définir une fonction publique accédant à des fonctions et des variables privées en utilisant des closures. Cette façon de procéder est également connue comme le patron de conception module, et permet de créer des classes : | ||
<sxh javascript; | <sxh javascript; | ||
var creerCompteur = function() { | var creerCompteur = function() { | ||
Ligne 129: | Ligne 131: | ||
}; | }; | ||
</ | </ | ||
+ | **Utilisation de la classe creerCompteur :** | ||
<sxh javascript; | <sxh javascript; | ||
var compteur1 = creerCompteur(); | var compteur1 = creerCompteur(); | ||
Ligne 139: | Ligne 142: | ||
alert(compteur1.valeur()); | alert(compteur1.valeur()); | ||
alert(compteur2.valeur()); | alert(compteur2.valeur()); | ||
+ | </ | ||
+ | |||
+ | ==== Prototype ==== | ||
+ | Mais les closures sont coûteuse (en mémoire et temps d' | ||
+ | Par contre, dans ce cas, la variable compteur est redevenue publique. | ||
+ | |||
+ | <sxh javascript> | ||
+ | function creerCompteur() { | ||
+ | this.compteur= 0; | ||
+ | } | ||
+ | creerCompteur.prototype = { | ||
+ | decrement: function() { | ||
+ | this.compteur--; | ||
+ | }, | ||
+ | increment: function() { | ||
+ | this.compteur++; | ||
+ | }, | ||
+ | valeur: function() { | ||
+ | return this.compteur; | ||
+ | } | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | Utilisation de la classe et instanciation d'un objet avec l' | ||
+ | <sxh javascript> | ||
+ | var compteur=new creerCompteur(); | ||
+ | compteur.increment(); | ||
+ | alert(compteur.compteur);// | ||
</ | </ | ||
===== JSON ===== | ===== JSON ===== | ||
Ligne 189: | Ligne 220: | ||
} | } | ||
] | ] | ||
+ | </ | ||
+ | |||
+ | ===== Tableaux ===== | ||
+ | <sxh javascript> | ||
+ | var values=[{" | ||
+ | </ | ||
+ | ==== Parcours classique ==== | ||
+ | |||
+ | <sxh javascript> | ||
+ | for(var i=0; | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== foreach ==== | ||
+ | |||
+ | <sxh javascript> | ||
+ | values.forEach(function(element) { | ||
+ | console.log(element.code); | ||
+ | }); | ||
</ | </ |