formations/javascript/base/modularisation-3.md

34 lines
830 B
Markdown

# .cadoles-slide-title[Modularisation (3/8)]
**Variable global et SEAF**
> **SEAF:** _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'
```