JavaScript命名空间namespace的实现方法

网上有很多了,这里给出一个,其实思路就是A={}; A.b={};其实b是A的一个属性。只是做了一些封装,最后的效果是可以直接定义多个namespace:

   1:  My.namespace("Company", "Company.Feed", "Company.Feed.Messaging");

 

具体的实现方法,用到了arguments, eval等JavaScript函数

   1:  //namespace的实现
   2:  var MyFramework = {};
   3:   
   4:  MyFramework.namespace=function(){ 
   5:      var a=arguments, o=null, i, j, d, rt; 
   6:      for (i=0; i<a.length; ++i) { 
   7:          d=a[i].split("."); 
   8:          rt = d[0]; 
   9:          eval("if (typeof (" + rt + ") == 'undefined'){" + rt + "= {};} o = "+ rt + ";"); 
  10:          for (j=1; j<d.length; ++j) { 
  11:              o[d[j]]=o[d[j]] || {}; 
  12:              o=o[d[j]]; 
  13:            } 
  14:        } 
  15:    };

 

使用方法

   1:  MyFramework.namespace("MyCompany.feed", "IBM.common"); //直接定义多个namespace
   2:                
   3:  MyCompany.feed =
   4:   {
   5:       alert: function (msg) {
   6:           alert(msg);
   7:       },
   8:   
   9:       load: function () {
  10:       }
  11:   
  12:   };
  13:               
  14:  MyCompany.feed.test = function (t){
  15:    alert("MyCompany.feed.test : "+t);
  16:  };
  17:   
  18:  IBM.common.messging = function (t){
  19:    alert("IBM.common.messging: "+t);
  20:  };
  21:   
  22:  MyCompany.feed.test("def");
  23:  MyCompany.feed.alert("abc");    
  24:  IBM.common.messging("fff");

转载于:https://www.cnblogs.com/Mainz/archive/2011/07/28/2119578.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/275349.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过MySQL存储原理来分析排序和锁

先抛出几个问题1.为什么不建议使用订单号作为主键?2.为什么要在需要排序的字段上加索引?3.for update 的记录不存在会导致锁住全表?4.redolog 和 binlog 有什么区别?5.MySQL 如何回滚一条 sql ?6.char(50) 和 varchar(50) 效果是一样的么?索引知识回顾对于 MySQL 数据库而…

1600k 打印头测试软件,巧修LQ-1600K打印机打印头

LQ-1600K 24针中英文打印机&#xff0c;由于其打印速度快、输出的文字漂亮、软件兼容性好等优点&#xff0c;在国内得到极为广泛的应用。但该机的打印头及打印针驱动电路故障率较高&#xff0c;一旦出现此类故障&#xff0c;打印效果将大打折扣。本人在长期维修工作中&#xff…

linkedin爬虫_重新设计Linkedin的指导功能-用户体验案例研究

linkedin爬虫为什么选择导师 Linkedin平台&#xff1f; (Why mentorship Linkedin platform?) As a recent graduate, I went on Linkedin to seek career advice and mentorship. This idea came so naturally that I was quite surprised by the absence of a complete fea…

POJ 1797 Heavy Transportation 解题报告

分类&#xff1a;图论&#xff0c;生成树&#xff0c;最短路&#xff0c;并查集作者&#xff1a;ACShiryu时间&#xff1a;2011-7-28地址&#xff1a;ACShiryus BlogHeavy TransportationTime Limit: 3000MSMemory Limit: 30000KTotal Submissions: 11929Accepted: 3171Descrip…

曾以为只能拿8K,22届学弟字节校招心路历程

大家好&#xff0c;我是若川。最近组织了源码共读活动《1个月&#xff0c;200人&#xff0c;一起读了4周源码》&#xff0c;已经有超50人提交了笔记&#xff0c;群里已经有超1500人&#xff0c;感兴趣的可以点此链接扫码加我微信 ruochuan12这篇文章记录了江西师大学弟进入字节…

王者荣耀cpu测试软件,你的手机能否玩王者荣耀,主流处理器新版王者荣耀测试...

说道国民级手游&#xff0c;目前来看那绝对是王者荣耀和刺激战场&#xff0c;之前的话那可是王者荣耀的天下&#xff0c;甚至许多手机厂商在发布新手机的时候会专门公布王者荣耀的帧率&#xff0c;可见王者荣耀带来的影响有多大。新版王者荣耀随着王者荣耀的优化和手机系统、硬…

关于MFC遇到的一系列类型转换问题

1.LPTSTR 转换成 CString&#xff1a; (1)直接赋值 CString strText; LPTSTR lpszText _T("LPTSTR >> CString"); strText lpszText; ::MessageBox( NULL, strText , _T("标题"), MB_ICONASTERISK|MB_TASKMODAL|MB_OK );(2)CString::Format()格式化…

大萧条时期什么行业走俏_大流行时期的用户体验

大萧条时期什么行业走俏You’ve read a lot about uncertain times and social distancing. We’re all surrounded by the same words, but what exactly do they mean for the UX people? The nearest future is just the tip of the iceberg. The COVID-19 pandemic is lik…

vsftp虚拟用户无法上传文件,解决办法

vsftp虚拟用户无法上传文件&#xff0c;解决办法 1、打开/etc/vsftpd 目录中的vsftpd.conf文件&#xff0c;查找&#xff1a;guest_usernamexxx&#xff0c;这里指的是vsftpd虚拟用户对应的实 际系统用户。 2、将该xxx用户的R权限赋予想要上传的目录&#xff1a;chown -R xxx.x…

面试官问:来实现一个Promise

大家好&#xff0c;我是若川。最近组织了源码共读活动《1个月&#xff0c;200人&#xff0c;一起读了4周源码》&#xff0c;已经有超50人提交了笔记&#xff0c;群里已经有超1500人&#xff0c;感兴趣的可以点此链接扫码加我微信 ruochuan12 参与&#xff0c;一起学习&#xff…

奇迹暖暖服务器不稳定,闪耀暖暖用土豆当服务器?开服仅半小时就崩溃,无数玩家疯狂吐槽...

大家好&#xff0c;这里是正惊游戏&#xff0c;我是你们的正惊小弟。继奇迹暖暖之后&#xff0c;叠纸游戏的3D换装类游戏《闪耀暖暖》于昨天正式开启了全平台公测。就在大家想要上游戏给女儿买好看的衣服时&#xff0c;发现游戏的服务器崩了&#xff0c;谁都登录不上去&#xf…

D2 日报 2019年4月17日

? 新闻 ➡️ Is React Translated Yet? ¡S! Sim! はい&#xff01; react 文档翻译了多种语言reactjs.org? 开源项目 ➡️ formal/packages/formal-web at master kevinwolfcr/formal React Hooks 版本的 rc-form&#xff0c;集成了 React 表单组件通用的的非受控值缓…

nda协议_如何将NDA项目添加到您的投资组合

nda协议Being on the job hunt meant I needed to update my portfolio again. I had a new project to add, but it was under an NDA and I couldn’t say too much about it. Since I’ve never had to figure out how to display an NDA project on my portfolio before, I…

程序员一定会有35岁危机吗?

大家好&#xff0c;我是若川。最近组织了源码共读活动《1个月&#xff0c;200人&#xff0c;一起读了4周源码》&#xff0c;已经有超50人提交了笔记&#xff0c;群里已经有超1500人&#xff0c;感兴趣的可以点此链接扫码加我微信 ruochuan12你好&#xff0c;我是黄老师。最近经…

hdu 2141 Can you find it? hdu1597 find the nth digit

hdu2141 唉&#xff0c;是我 想多了&#xff0c;用普通方法拼命剪枝&#xff0c;还是TLE 直接将前俩个数组的和求出来并保存&#xff0c;之后就是一个二分查找的过程了 二分的俩种写法 第一种 #include<iostream>#include<algorithm>#include<string>using …

好程序员分享大势所趋 HTML5成Web开发者最关心的技术

好程序员分享大势所趋 HTML5成Web开发者最关心的技术&#xff0c;最近&#xff0c;在Stack Exchange上出现了一个比较热门的问题&#xff1a;Web开发者最头疼的问题是什么?结果并不是大家通常认为的兼容性问题&#xff0c;而是关于HTML5。  在所有与前端开发相关的技术中&am…

微软bi 架构 服务器,微软BI体系结构.

《微软BI体系结构.》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《微软BI体系结构.(41页珍藏版)》请在人人文库网上搜索。1、Data Warehouse Data Access 前端报表用户前端报表用户 Data Sources Data Input Staging Area Data Marts 财务经理的视角财务经理的视角 …

网页开发环境的重要性_少即是多:极简方法在网页设计中的重要性

网页开发环境的重要性Written by Alan Smith由艾伦史密斯 ( Alan Smith)撰写 Minimalism has been an increasingly popular trend in the web design world. Designers may be tempted by bolder, feature-rich design because it might seem like the best way to engage us…

聊聊前端八股文?

大家好&#xff0c;我是若川&#xff0c;点此加我微信进源码群&#xff0c;一起学习源码。同时可以进群免费看Vue专场直播&#xff0c;有尤雨溪分享「Vue3 生态现状以及展望」前些天&#xff0c;我看到《剑指前端offer》一系列文章&#xff0c;被前言部分图示和文章内容惊艳到。…

微服务神经元(Neural)

微服务架构中的神经组织&#xff0c;主要为分布式架构提供了集群容错的三大利刃&#xff1a;限流、降级和熔断。并同时提供了SPI、过滤器、JWT、重试机制、插件机制。此外还提供了很多小的黑科技(如&#xff1a;IP黑白名单、UUID加强版、Snowflake和大并发时间戳获取等)。Featu…