javaScript NameSpace 简单说明介绍


Posted in Javascript onJuly 18, 2013

    打造JavaScript命名空间其实很简单,只需要将自己的函数、对象、变量等放在一个伪命名空间中,即用一个匿名函数包装起来。
 

(function(){ 
    function $(id){ 
        return document.getElementById(id); 
    } 
    function alertNodeName(id){ 
        alert($(id).nodeName); 
    } 
})();

    使用这种伪命名空间可以封装并保护自己的所有函数、对象、变量,而且由于他们位于一个函数之中,相互之间也可以互相访问。不过伪命名空间之外的脚本就无法使用这些函数了。
    为了使这些函数可以被伪命名空间之外的脚本调用,我们首先创建一个window对象。
(function(){ 
    if(!window.myNamespace){window['myNameSpace']={};} 
    function $(id){ 
        return document.getElementById(id); 
    } 
    function alertNodeName(id){ 
        alert($(id).nodeName); 
    } 
})();

    然后将要全局化的函数重命名一下(也可以不重命名)赋给window对象window['myNameSpace']。
(function(){ 
    if(!window.myNamespace){window['myNameSpace']={};} 
    function $(id){ 
        return document.getElementById(id); 
    } 
    function alertNodeName(id){ 
        alert($(id).nodeName); 
    } 
    window['myNameSpace']['showNodeName'] = alertNodeName; 
})();

    这样我们就打造了一个自己的命名空间。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
 <HEAD> 
  <TITLE> New Document </TITLE> 
  <META NAME="Generator" CONTENT="EditPlus"> 
  <META NAME="Author" CONTENT=""> 
  <META NAME="Keywords" CONTENT=""> 
  <META NAME="Description" CONTENT=""> 
  <SCRIPT LANGUAGE="JavaScript"> 
  <!-- 
 (function(){ 
  function $(id){ 
   return document.getElementById(id); 
  } 
  function alertNodeName(id){ 
   alert($(id).nodeName); 
  } 
  window['myNameSpace'] = {}; 
  window['myNameSpace']['showNodeName'] = alertNodeName; 
 })(); 
    function Test(){ 
  myNameSpace.showNodeName("T"); 
 } 
  //--> 
  </SCRIPT> 
 </HEAD> 
 <BODY onload="Test()"> 
   <INPUT TYPE="text" NAME="T" ID="T" VALUE="Test"> 
 </BODY> 
</HTML>
Javascript 相关文章推荐
在JavaScript中监听IME键盘输入事件
May 29 Javascript
JavaScript实现存储HTML字符串示例
Apr 21 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
Sep 13 Javascript
举例讲解Node.js中的Writable对象
Jul 29 Javascript
Bootstrap进度条实现代码解析
Mar 07 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
Mar 08 Javascript
JavaScript基础之流程控制语句的用法
Aug 31 Javascript
全面介绍vue 全家桶和项目实例
Dec 27 Javascript
Webpack 4.x搭建react开发环境的方法步骤
Aug 15 Javascript
详解微信小程序中组件通讯
Oct 30 Javascript
jQuery实现全选、反选和不选功能的方法详解
Dec 04 jQuery
JS实现简易留言板特效
Dec 23 Javascript
JS获取鼠标坐标的实例方法
Jul 18 #Javascript
非常好用的JsonToString 方法 简单实例
Jul 18 #Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
Jul 17 #Javascript
JS随机生成不重复数据的实例方法
Jul 17 #Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
Jul 17 #Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
Jul 17 #Javascript
js中如何把字符串转化为对象、数组示例代码
Jul 17 #Javascript
You might like
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
Laravel框架创建路由的方法详解
2019/09/04 PHP
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
用正则表达式替换图片地址img标签
2013/11/22 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
jquery.cookie.js使用指南
2015/01/05 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
2016/06/03 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
Vue框架下引入ActiveX控件的问题解决
2019/03/25 Javascript
vue2路由基本用法实例分析
2020/03/06 Javascript
vue+Element-ui前端实现分页效果
2020/11/15 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
python快速查找算法应用实例
2014/09/26 Python
python获取文件后缀名及批量更新目录下文件后缀名的方法
2014/11/11 Python
PyCharm更改字体和界面样式的方法步骤
2019/09/27 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
Pytorch maxpool的ceil_mode用法
2020/02/18 Python
Python configparser模块常用方法解析
2020/05/22 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
2020/10/29 Python
Manduka官网:瑜伽垫、瑜伽毛巾和服装
2018/07/02 全球购物
校园标语大全
2014/06/19 职场文书
食品安全汇报材料
2014/08/18 职场文书
学校拾金不昧表扬信
2015/01/16 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL
nginx+lua单机上万并发的实现
2021/05/31 Servers
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL