首页 > 代码库 > javascript 命名空间,学习
javascript 命名空间,学习
一、
(function(){ var _NS=function(){ } _NS.prototype.alert=function(){ console.log(‘test‘); } window.NS=new _NS(); })();
二、
// 声明一个全局对象Namespace,用来注册命名空间Namespace = new Object();// 全局对象仅仅存在register函数,参数为名称空间全路径,如"Grandsoft.GEA"Namespace.register = function(fullNS){ // 将命名空间切成N部分, 比如Grandsoft、GEA等 var nsArray = fullNS.split(‘.‘); var sEval = ""; var sNS = ""; for (var i = 0; i < nsArray.length; i++) { if (i != 0) sNS += "."; sNS += nsArray[i]; // 依次创建构造命名空间对象(假如不存在的话)的语句 // 比如先创建Grandsoft,然后创建Grandsoft.GEA,依次下去 sEval += "if (typeof(" + sNS + ") == ‘undefined‘) " + sNS + " = new Object();" } if (sEval != "") eval(sEval);}
// 注册命名空间Grandsoft.GEA, Grandsoft.GCMNamespace.register("Grandsoft.GEA");Namespace.register("Grandsoft.GCM");// 在Grandsoft.GEA命名空间里面声明类PersonGrandsoft.GEA.Person = function(name, age){ this.name = name; this.age = age;}// 给类Person添加一个公共方法show()Grandsoft.GEA.Person.prototype.show = function(){ alert(this.name + " is " + this.age + " years old!");}// 演示如何使用类Personvar p = new Grandsoft.GEA.Person("yanglf", 25);p.show();
三、
var YAHOO = window.YAHOO || {};YAHOO.namespace = function(ns) { if (!ns || !ns.length) { return null; } var levels = ns.split("."); var nsobj = YAHOO; // YAHOO is implied, so it is ignored if it is included for (var i=(levels[0] == "YAHOO") ? 1 : 0; i<levels.length; ++i) { nsobj[levels[i]] = nsobj[levels[i]] || {}; nsobj = nsobj[levels[i]]; } return nsobj;};YAHOO.extend = function(subclass, superclass) { var f = function() {}; f.prototype = superclass.prototype; subclass.prototype = new f(); subclass.prototype.constructor = subclass; subclass.superclass = superclass.prototype; if (superclass.prototype.constructor == Object.prototype.constructor) { superclass.prototype.constructor = superclass; }};YAHOO.namespace("util");YAHOO.namespace("widget");YAHOO.namespace("example");
四、
function namespace(ns){ if(typeof(ns)!="string")return; ns=ns.split("."); var o,ni; for(var i=0,len=ns.length;i<len,ni=ns[i];i++){ try{o=(o?(o[ni]=o[ni]||{}):(eval(ni+"="+ni+"||{}")))}catch(e){o=eval(ni+"={}")} } } /* function a(){return 5} namespace("a.b"); alert(a); alert(a.b) namespace("test.test.abc") test.test.abc.func1=function(){ alert(‘func1 run‘) } alert(test.test) test.test.abc.func1(); */
javascript 命名空间,学习
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。