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 相关文章推荐
利用onresize使得div可以随着屏幕大小而自适应的代码
Jan 15 Javascript
Javascript 类与静态类的实现
Apr 01 Javascript
如何用ajax来创建一个XMLHttpRequest对象
Dec 10 Javascript
html向js方法传递参数具体实现
Aug 08 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
May 21 Javascript
JavaScript函数的调用以及参数传递
Oct 21 Javascript
jQuery插件实现可输入和自动匹配的下拉框
Oct 24 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
Dec 13 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
Feb 13 Javascript
如何写好你的JavaScript【推荐】
Mar 02 Javascript
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
Jul 20 jQuery
vue父组件给子组件的组件传值provide inject的方法
Oct 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 a simple smtp class
2007/11/26 PHP
PHP 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
2014/07/01 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
完美解决在ThinkPHP控制器中命名空间的问题
2017/05/05 PHP
php+croppic.js实现剪切上传图片功能
2018/08/14 PHP
document.documentElement &amp;&amp; document.documentElement.scrollTop
2007/12/01 Javascript
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
javaScript同意等待代码实现心得
2011/01/01 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
2014/02/19 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
JS+DIV实现鼠标划过切换层效果的方法
2015/05/25 Javascript
JS实现网站菜单拖拽移位效果的方法
2015/09/24 Javascript
js+css绘制颜色动态变化的圈中圈效果
2016/01/27 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
详解react native页面间传递数据的几种方式
2018/11/07 Javascript
微信小程序动态显示项目倒计时
2019/06/20 Javascript
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
2018/05/08 Python
python实现淘宝秒杀脚本
2020/06/23 Python
深入浅析python变量加逗号,的含义
2020/02/22 Python
传统HTML页面实现模块化加载的方法
2018/10/15 HTML / CSS
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
公司年会晚宴演讲稿
2014/01/06 职场文书
怎样写好创业计划书的内容
2014/02/06 职场文书
水电工岗位职责
2014/02/12 职场文书
一般基层干部群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
创业计划书之婴幼儿游泳馆
2019/09/11 职场文书
创业计划书之面包店
2019/09/12 职场文书
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电