namespace
//"window" //"window.a" //"a" //"a.b.c" //any custom context
function (a,b,c,d){c=a.replace(/^window.?/,"").split("."),b=b||window;while(d=c.shift())b=b[d]=b[d]||{};return b} |
function( | |
a, //input string | |
b, //context | |
c, //(placeholder) | |
d //(placeholder) | |
){ | |
c = a.replace(/^window.?/, '').split('.'); //replace ^window and split | |
b = b || window; //default context | |
while(d = c.shift()) b = b[d] = b[d] || {}; | |
return b; | |
} |
{ | |
"name": "namespace", | |
"description": "namespace", | |
"keywords": [ | |
"namespace", | |
"javascript", | |
"斯人", | |
"leecade" | |
] | |
} |
How about using the replace for the loop?
function (a,b){b=b||window;a.replace(/^window\.|([^\.]+)/g,function(c,d){b=d?b[d]||{}:b});return b}