日期:2014-05-16  浏览次数:20360 次

@_@ 在 JS 中如何实现 命名空间?
JS   脚本越攒越多,如果管理不好就是灾难,
因此提出   在   JS   中如何实现   命名空间?
当然也是看到有人已经这么做了。

实现原理是什么?

最好能给出一个简单实现的例子?

JS   命名空间是否具有哪些局限性或潜在问题?


------解决方案--------------------
var outer = {};

outer.inner = {
show:function(){
alert( 'this is outer.inner.show Function ');
}
};

使用时
outer.inner.show();


这就是js的命名空间了……其实就是一个对象里包含另一个对象,使它使用起来像个命名空间……
------解决方案--------------------
http://www.ajaxwing.com/index.php?id=2
http://www.knowsky.com/340901.html
------解决方案--------------------
目前版本的JS不支持命名空间。目前只有运用原型来搞,差不多就是封装一下,这样就不会每个人之间开发的程序的混了。
------解决方案--------------------
var _registerNS = function (ns) {
// see detail http://www.never-online.net
var levels = ns.split( ". ");
var _NS = neverModules;
for(var i=(levels[0]== "neverModules ")?1:0; i <levels.length; i++) {
_NS[levels[i]] = _NS[levels[i]] || {};
_NS = _NS[levels[i]];
}; return _NS;
};

_registerNS( "neverModules.ui ");
neverModules.ui.autocomplete = function(){};//_class();
neverModules.ui.autocomplete.prototype = {
//your code

}