How To Create Global, Instance Based Objects From Local Scope?
I have a single global object I use. I know the cons of using global objects but in this case I want to use it. I call this global object the object pipe b.c. it branches my model
Solution 1:
Hold your package privately and just have some access functions:
var myModel = (function() {
var model_vars = {
model: 'default',
result: 'continue',
page: {},
args: {},
server: {},
hash: localStorage.hash
};
return function() {
this.get = function(ele) {
if (model_vars.hasOwnProperty(ele)) {
return model_vars[ele];
}
};
this.set = function(ele, value) {
if (model_vars.hasOwnProperty(ele)) {
return model_vars[ele] = value;
}
};
};
})();
Then you can just do:
Model = new myModel();
Solution 2:
You can pass in the global scope and use it when you need it, something like this:
MC.o_p1 = function(global) {
return {
model : 'default',
result : 'continue',
page : {},
args : {},
server : {},
hash : global.localStorage.hash
}
}(window);
Solution 3:
var msg = 'window is global in browsers';
window.alert(msg);
alert('or we can just use alert without accessing from window because, '+msg);
function isWindowReallyGlobalInBrowsers(){
window.newMsg = 'Did you see var newMsg get declared anywhere?';
alert(newMsg + ' It works because ' +msg);
}
isWindowReallyGlobalInBrowsers();
Try it in a browser console. Ask questions as needed.
Post a Comment for "How To Create Global, Instance Based Objects From Local Scope?"