34 lines
838 B
Markdown
34 lines
838 B
Markdown
|
# .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'
|
||
|
|
||
|
```
|