http://casual-effects.blogspot.ca/2014/01/an-introduction-to-javascript-for.html
Another variation mutates the global namespace object:
Module
There are several ways of using functions to group state and implement module-like functionality. The simplest is to have modules be objects that contain functions (and constants, and variables...).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| use strict; var module = ( function () { // This cannot be seen outside of the module, so it will not create namespace function aPrivateFunction(z) { return Math.sqrt(z); } // Freezing and sealing are two ways to prevent accidental mutation of the // module after creation. return Object.freeze({ // These are accessible as module.anExportedFunction after the definition anExportedFunction: function (x, y) { return x + aPrivateFunction(y); }, anotherExportedFunction: function (x) { return 2 * x; } }); })(); |
Another variation mutates the global namespace object:
1
2
3
4
5
6
7
8
9
10
| use strict; // Use function to create a local scope and persistent environment ( function () { function aPrivateFunction(z) { return Math.sqrt(z); } // Mutate the global environment this .anExportedFunction = function (x, y) { return x + aPrivateFunction(y); }; this .anotherExportedFunction = function (x) { return 2 * x; }; })(); |
No comments:
Post a Comment