javascript 通用命名空间函数

来源:互联网 发布:js仿网易新闻导航栏 编辑:程序博客网 时间:2024/05/16 05:31

1.在添加一个属性或创建一个命名空间之前最好先检查它是否已经存在

//不安全的代码var MYAPP = {};//更好的代码if(typeof MYAPP === "undefined"){var MYAPP = p{};}//或者var MYAPP = MYAPP || {};

2.减少重复代码

//使用命名空间函数MYAPP.namespace('MYAPP.modules.modules2');/*以上代码相当于:var MYAPP = {modules: {modules2: {}}};*/

3.一个命名空间函数的实例

var MYAPP = MYAPP || {};MYAPP.namespace = function(ns_string) {var parts = ns_string,split('.');parent = MYAPP,i;//剥离最前面的冗余全局变量if(parts[0] === "MYAPP") {parts = parts.slice(1);}for(i = 0;i < parts.length;i += 1) {//如果它不存在就创建一个属性if(typeof parent[parts[i]] === "undefined") {parent[parts[i]] = {};}parent = parent[parts[i]];}return parent;}//以上实现使一下用法都能正常运行//将返回值赋给一个局部变量var module2 = MYAPP.namespace('MYAPP.modules.modules2);modules2 === MYAPP.modules.modules2; //true//忽略最前面的'MYAPP'MYAPP.namespace('modules.modules2');//长命名空间MYAPP.namespace('once.upon.a.time.there.was.this.long.nested.propoty);




0 0
原创粉丝点击