//声明一个全局对象Namespace,用来注册命名空间 Namespace = new Object(); // 全局对象仅仅存在register函数,参数为名称空间全路径 Namespace.register = function(wk_NS) { var nsArray = wk_NS.split('.'); var sEval = ""; var sNS = ""; for (var i = 0; i < nsArray.length; i++) { if (i != 0) sNS += "."; sNS += nsArray[i]; sEval += "if (typeof(" + sNS + ") == 'undefined') " + sNS + " = new Object();" } if (sEval != "") eval(sEval); } /*** * test demo * Namespace.register("wk_test");注册命名空间 * wk_test.jquery=$;将$添加到该命名空间 * var p=wk_test.jquery("a").size();通过命名空间获取值 * alert(p); */
实例demo
-------------------------------------------------------------------------------------------------------------------------------------
<script type="text/javascript" src="namespace.js"></script> <script type="text/javascript" src="jquery-1.7.1.min.js"></script> <script type="text/javascript" src="jquery.validate.min.js"></script> <script type="text/javascript" > var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" "); Namespace.register("wk_vada"); wk_vada=$; wk_vada(document).ready(function() { wk_vada("#signupForm").validate({ rules: { name: "required", keyword:"required" }, messages: { name: "请输入姓名", keyword: "请输入姓名" } }); </script> <script type="text/javascript" src="jquery.autocomplete.min.js"></script> <script type="text/javascript" > Namespace.register("wk_auto"); wk_auto=$; wk_auto('#keyword').autocomplete(data).result(function(event, data, formatted) { alert(data); }); alert(wk_auto instanceof wk_vada); //false </script>
注:借鉴无私的开源者
相关推荐
lib-manage2.3可能采用了模块化的设计,将不同功能的代码封装在独立的库中,便于复用和维护。同时,通过命名规范和分类,使得开发者可以快速定位到所需库。 其次,版本控制是库管理系统不可或缺的一部分。lib-...
总的来说,ES6的导入与导出机制为JavaScript的模块化提供了强大支持,使得代码结构更加清晰,可维护性更强,同时也更好地解决了命名冲突和作用域问题。通过熟练掌握这些规则和用法,开发者可以编写出更高质量的前端...
<script type="text/javascript" src="_lib/jquery.js"> <script type="text/javascript" src="jquery.jstree.js"> ``` 或者,如果希望使用压缩版,可以替换为: ```html <script type="text/javascript" src=...
Require.js提供了一种方式来组织代码,避免全局命名空间的污染,同时解决了代码依赖和多脚本文件管理的问题。 Require.js的核心概念是模块(Module),它是一个独立的、自我封装的对象,不会影响到全局环境。模块...
然而,`ponyfill`不同于传统的`polyfill`,它并不污染全局命名空间,而是通过导出一个函数或对象来提供新功能,这样可以避免与其他库冲突。 在Node.js v4版本中,`ChildProcess`构造函数可能还存在一些不兼容或者未...
一些工具如luarocks可以帮助管理和安装Lua库,它类似于Python的pip或Node.js的npm,允许指定库的版本、解决依赖问题,并方便地安装到系统的合适位置。 7. **lua库的示例** - `luasocket`:提供网络通信功能,如TCP...
在JavaScript历史上,其作为Web开发中不可或缺的编程语言,由于其早期设计的仓促,存在一些设计上的问题,比如全局命名空间的问题,这在Node.js中通过模块化的机制得到了解决。Node.js遵循CommonJS规范,每个模块有...
为了更好地组织代码和避免命名冲突,RequireJS支持模块命名空间。可以使用相对路径或者绝对路径来创建模块层次结构,如`'app/view'`和`'lib/util'`。 六、插件机制 RequireJS的插件系统允许扩展其功能,如文本模板...
它引入了AMD(Asynchronous Module Definition)模式,这种模式允许我们定义和异步加载模块,解决了传统JavaScript中由于全局变量导致的命名冲突问题。通过`requireJS`,我们可以将代码分割成多个模块,每个模块负责...
23、修复color.js中增加命名颜色支持 26、弹出框增加新的选项能够制定JS生成DOM的id属性,便于自定义样式 27、大幅优化代码,修复一些在Javascript代码中的错误,完善关键代码注释,增强部分代码文件与requierejs的...
Seajs的核心理念是模块化,它允许我们将JavaScript代码分割成多个独立的模块,每个模块都有自己的命名空间,避免了全局变量污染的问题。它遵循AMD(Asynchronous Module Definition)和CMD(Common Module ...
4. **命名空间**:探讨XML命名空间的概念,如何通过命名空间解决元素和属性名称的冲突问题。 5. **XSLT与XSL-FO**:解释如何使用XSLT(Extensible Stylesheet Language Transformations)进行XML到XML或XML到其他...
而在ES5的`<script src>`方式中,浏览器会直接加载并执行外部文件,这在ES6/Vue环境中可能导致命名冲突或无法识别的问题。 总结一下,要在Vue项目中基于ES6导入外部JS文件,你需要: 1. 将外部JS文件转换为ES6模块...
6. **CSS-in-JS**:在某些情况下,styles-lib可能结合了JavaScript,将CSS嵌入到JS中,利用JS的动态性和灵活性,如styled-components或JSS。 7. **状态管理**:对于复杂的UI组件,styles-lib可能包含了一种管理组件...
2. **依赖冲突**:当项目依赖的不同模块有相同的依赖但版本不一致时,Node.js会通过“npm link”或“npm flat”特性来解决冲突,尽量保持树状依赖结构,避免“ diamond problem”。 3. **优化体积**:在生产环境中...
- `noconflict`: 提供无冲突模式的编辑器,避免与其他库发生命名空间冲突。 - `demo`: 示例代码和演示页面,帮助开发者快速了解如何在项目中集成Ace Editor。 - `mode-*` 和 `theme-*`: 不同编程语言的模式文件和...
例如,可以设定所有第三方库在`js/lib`路径下,而自定义应用模块在`js/app`路径下。 4. **paths 配置的特殊规则**:某些模块ID可以直接加载为相对HTML文档的脚本,比如以`.js`结尾、以`/`开头或包含URL协议的模块ID...
### ExtJs教程_完整版 —— 第一章起步(1)关键知识点详解 #### 一、ExtJS概述 **1.1 极致的用户体验** ...此外,ExtJS的社区非常活跃,提供了大量的资源和支持,使得学习和解决问题变得更加容易。
4. **命名空间**:通过命名空间,Nacos 允许在同一集群中隔离不同的环境(如开发、测试和生产环境)的配置和服务,避免了不同环境之间的冲突。 5. **多语言支持**:Nacos 提供了多种语言的 SDK,包括 Java、Go、...