博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用js命名空间进行模块式开发
阅读量:6850 次
发布时间:2019-06-26

本文共 1055 字,大约阅读时间需要 3 分钟。

      在java中,为了防止命名冲突和模块式开发,会有个一个import 关键字来进行导包。

  在js中为了达到同样的效果,我们也通过给其自定义一个“包”的概念。

  直接上代码:

  首先有个LC.js文件:

  

//LC.js var LC = LC || {};LC.namespace = function(namespace) {    var nsparts = namespace.split(".");    var parent = window;    if (nsparts[0] === "LC") {        nsparts = nsparts.slice(1);        parent = LC;    }    for (var i = 0; i < nsparts.length; i++) {        var partname = nsparts[i];        if (typeof parent[partname] === "undefined") {            parent[partname] = {};        }        parent = parent[partname];    }    return parent;};// alias namespaceLC.ns = LC.namespace;

    设计思路:将命名空间,即”包“名通过参数传递到此方法中,然后将这个”包名“通过字符串解析,将其注册到window对象中,来充当window对象的属性,

通过一种类似递归的方式,来处理子包。

  使用的方法:

    

//Test.js LC.ns("app.admin").test = (function() {    function init() {      alert("init")    }    function doSomething() {       alert("doSomething");    }    return {        init : init,        doSomething : doSomething     };
})();

       在页面调用Test.js 即需要引入这两个文件,调用某个方法:

   这样就通过这种命名空间的方式来减少js方法命名的重复了。

转载于:https://www.cnblogs.com/lic309/p/4136292.html

你可能感兴趣的文章
IDEA2016.3搭建Struts2+Hibernate+Spring项目环境
查看>>
多线程(一)线程创建的三种方式
查看>>
HDU-4310 Hero 贪心Or动态规划
查看>>
linux软件管理 YUM命令
查看>>
windows下memcache安装及配置
查看>>
第一次作业人工智能
查看>>
labeled LDA,Hierarchically Supervised LDA
查看>>
JavaScript 捕获按键
查看>>
记录Javascript数组的方法参考
查看>>
截图软件
查看>>
关于抽奖概率的问题
查看>>
《鸟哥的私房菜阅读摘要》——linux的简介和计算机基础
查看>>
hql语句的case when then else end问题
查看>>
CF786E ALT
查看>>
引用与指针的区别
查看>>
MongoCola Web化 -- 1. 是不是什么软件都要Web化的讨论 2.新公司,新起点 3.MongoCola 新版本发布...
查看>>
LeetCode (6): ZigZag Conversion
查看>>
HDU 4424 Conquer a New Region 并查集
查看>>
捣乱Linux环境下的C语言
查看>>
13040:All in All
查看>>