當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaScript命名空间namespace的实现方法
生活随笔
收集整理的這篇文章主要介紹了
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
總結
以上是生活随笔為你收集整理的JavaScript命名空间namespace的实现方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一次生产问题的复盘
- 下一篇: 设计模式笔记(24)---访问者模式(行