Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Created with JetBrains PhpStorm.
- * User: scotty
- * Date: 28/08/2013
- * Time: 19:39
- */
- ;(function(global){
- "use strict";
- var M = function() {
- // Constructor. arguments are passed
- // from Module() call. this refers to m.
- function init() {
- meth_priv2();
- m.meth_pub2();
- }
- // Empty object, to be populated with
- // public properties and methods.
- var m = {};
- // Private properties. define using var x.
- // closure keeps them private.
- var prop_priv = "private property";
- // public properties. define using m.x.
- m.prop_pub = "public property";
- // private methods. define as var x = function() {}
- // closure keeps them private.
- var meth_priv = function() {
- console.log(prop_priv);
- console.log(m.prop_pub);
- };
- var meth_priv2 = function() {
- // access another priv method
- meth_priv();
- // access a pub method
- m.meth_pub();
- };
- // public methods. define as m.x = function() {}
- // private props/methods accessed via x.
- // public props/methods accessed via m.x
- m.meth_pub = function() {
- console.log(prop_priv);
- console.log(m.prop_pub);
- };
- m.meth_pub2 = function() {
- // access a priv method
- meth_priv();
- // access another pub method
- m.meth_pub();
- };
- // call the constructor
- init.apply(m, arguments);
- return m;
- };
- // determine correct export method depending upon
- // environment that this script was loaded in:
- if (typeof module != 'undefined' && module.exports) {
- module.exports = M; // Node / CommonJS...
- } else if (typeof define === 'function' && define.amd) {
- define('Module', [], M); // or RequireJS / AMD...
- } else {
- global.Module = M; // or browser
- }
- })(this.window || global);
Add Comment
Please, Sign In to add comment