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