2015-03-31 23:29:23 +02:00
|
|
|
# .cadoles-slide-title[Modularisation (3/8)]
|
2015-03-30 14:18:55 +02:00
|
|
|
|
2015-03-31 23:29:23 +02:00
|
|
|
**Variable global et SEAF**
|
2015-03-30 14:18:55 +02:00
|
|
|
|
2015-03-31 23:29:23 +02:00
|
|
|
> **SEAF:** _Self Executable Anonymous Function_
|
2015-03-30 14:18:55 +02:00
|
|
|
|
|
|
|
```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'
|
|
|
|
|
|
|
|
```
|