在量比较大或者多人编写的情况下,命名冲突就很有可能发生,同一个页面引用了两个命名相同功能不同的文件,调用的时候就会出问题。因此使用JS命名空间很重要。

1.采用字面量方法创建命名空间:

var a={

login:function(){……}

}

var b={

login:function(){……}

}//可以在a\b空间里面的login里面加入所需要的属性和方法。

2.

var com;

if(!com) com={};//第一级域名

com.ModuleClass={};//第二级域名

com.ModuleClass.函数名1=function(){函数体;}

com.ModuleClass.函数名2=function(){函数体;}

3.使用动态方法创建(有两种方法,1.window对象实现 2.eval实现)

//window实现

var namaSpace=nameSpace||{};

(function(){

var global=window;

nameSpace.ns=function(nsStr){

var parts=nsStr.split('.');

root=global;

i;

for(i=0,max=parts.length;i<max;i++){

if(typeof root[parts[i]]==="undefined"){

root[parts[i]]={};

}

root=root[parts[i]];

}

return root;

};

})();

使用命名空间:

nameSpace.ns("BP.login");

BP.login={

min_height=660;

min_width=1024;

isIE:false;

init:function(){

this.isIE=$.browser.msie;

this.regEvent();

this.initPage();

BP.page.i18nInit();

}

}

使用其中的函数:

<html>

<head>

<mata name="others" content="login_page">

<script>

$(document).ready(function(){

BP.login.init();

});

</sctipt>

</head>

<body>

</body>

</html>

// eval实现

a.命名空间注册工具类

var Namespace=new Object();

Namespacr.register=function(path){

var arr=path.split('.');

var ns="";

for(var i=0;i<arr.length;i++){

if(i>0)  ns+=".";

ns+=arr[i];

eval("if(typeof("+ns+")=='undefined')"+ns+"=new Object();");

}

}

b.注册命名空间com.boohee.ui

Namespace.register('com.boohee.ui')

c.使用命名空间

com.boohee.ui.TreeGrid=function(){

this.sayHello=function(name){

alert("hello"+name);

}

}

var t=new com.boohee.ui.TreeGrid();

t.sayHello('uid');

js命名空间笔记的更多相关文章

  1. vue.js 学习笔记3——TypeScript

    目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...

  2. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  3. Vue.js学习笔记(2)vue-router

    vue中vue-router的使用:

  4. js读书笔记

    js读书笔记 基本类型的基本函数总结 1. Boolean() 数据类型 转换为true的值 转换为false的值 Boolean true false String 任何非空字符串 "&q ...

  5. React.js入门笔记

    # React.js入门笔记 核心提示 这是本人学习react.js的第一篇入门笔记,估计也会是该系列涵盖内容最多的笔记,主要内容来自英文官方文档的快速上手部分和阮一峰博客教程.当然,还有我自己尝试的 ...

  6. JS 学习笔记--9---变量-作用域-内存相关

    JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...

  7. js命名空间的使用

    js命名空间的使用: test.html 代码如下: <!DOCTYPE HTML><html lang="en-US"><head>    & ...

  8. node.js系列笔记之node.js初识《一》

    node.js系列笔记之node.js初识<一> 一:环境说明 1.1 Linux系统CentOS 5.8 1.2 nodejs v0.10.15 1.3 nodejs源码下载地址 htt ...

  9. JS面向对象笔记二

    菜单导航,<JS面向对象笔记一>,  参考书籍:阮一峰之<JavaScript标准参考教程> 一.构造函数和new命令 二.this关键字 三.构造函数和new命令 四.构造函 ...

随机推荐

  1. SQL 的简单命令(增删改查)

    数据库操作的资料: 链接: https://pan.baidu.com/s/1dFl3q6X 密码: nvy7-- 增:insert into 表名 (列名) values (值) ,'dew') - ...

  2. linux:什么是linux

    1>.linux是一套作业系统(linux就是核心与呼叫这两层),每一种作业系统都是在他专门的硬体机器上面运行的:linux是一个Open Source的作业系统,具有可移植性 2>.li ...

  3. Three.js基础探寻十——动画

    本篇将介绍如果使用Three.js进行动态画面的渲染.此外,将会介绍一个Three.js作者写的另外一个库stat.js,用来观测每秒帧数(FPS). 1.实现动画效果 1.1 动画原理 对于Thre ...

  4. Java基础(40):Java中的集合介绍---Collection与Map

    集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap ...

  5. Css3中的变形与动画

    新的转换属性 下面的表格列出了所有的转换属性: 属性 描述 CSS transform 向元素应用 2D 或 3D 转换. 3 transform-origin 允许你改变被转换元素的位置. 3 2D ...

  6. Spring 中 Xml配置文件属性的说明

    Xml配置文件属性的说明: <bean id="TheAction" ⑴ class="net.xiaxin.spring.qs.UpperAction" ...

  7. Repeater 时间格式化

    Repeater 时间格式化   <%# Eval("AboutDate","{0:yyyy-MM-dd hh:mm:ss}")%> 个人认为最好用 ...

  8. 夺命雷公狗ThinkPHP项目之----企业网站11之栏目的删除完成

    我们删除要在分类模型中添加一个_before_delete的钩子函数,而且在删除一个分类时候,如果这个分类有子分类就不允许删除 model层代码如下所示: <?php namespace Adm ...

  9. 经典SQL

    一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...

  10. 6lowpan

    6lowpan的产品太少,到是蓝牙smart的产品现在很多.下一步就要研究6lowpan的协议了,买了一套TI的开发套件,IBM也在卖一套6lowpan的开发套件,价格还挺贵的,带了很多sensor, ...