[开发故事],第十五回,在Js中应用命名空间
anytao.net | 《你必须知道的.NET》网站 | Anytao技术博客
发布日期:2010.10.22 作者:Anytao
© 2010 Anytao.com ,Anytao原创作品,转贴请注明作者和出处。
Introduction
How to have a better code organization? When your software become bigger and bigger, the code will torture you all the time. So, the smart guy innovate the Namespace to handle this issue. For example, in .NET world, we define the class in scope of namespace:
namespace Anytao.Common { public class Console { public static void Read(string msg) { } } }
Then, we can use Console as below:
Anytao.Common.Console.Read("Hello, world.");
It will bring the following benefit:
- Better code organization
- Avoid naming conflict. For example, If we have another Console in the same assembly, it will cause error without namespace control. Now, we can absolutely separate naming by namespace.
Anytao.Common.Console.Read("Hello, world."); System.Console.Read();
Namespace in JavaScript
However, there is no language level support in JavaScript. It will cause a lot of problem and mess the process of development. Here is a experience in our project.
/* Define the NS in imxiqi.js */ var X8JS = {}; X8JS.ns = function (path) { var arr = path.split("."); var ns = ""; for (var i = 0; i < arr.length; i++) { if (i > 0) ns += "."; ns += arr[i]; eval("if(typeof(" + ns + ") == 'undefined') " + ns + " = new Object();"); } };
(注,上述代码来自互联网)
How to use?
- Reference the imxiqi.js file in your page head.
<scriptsrc="http://www.cnblogs.com/static/js/imxiqi.js"type="text/javascript"></script>
- Register the namespace when you use
X8JS.ns("XLR8.feed");
- Define the class, variables and others in your namespace
X8JS.ns("XLR8.feed"); X8JS.ns("Ethos.common"); XLR8.feed = { alert: function (msg) { alert(msg); }, load: function () { } }; Ethos.common.copyright = function BindData(data) { $("#copyright").html( data + " / Ethos"); };
- Use it when you use
<script language="javascript" type="text/javascript"> $(document).ready(function () { XLR8.feed.alert("Hello"); XLR8.feed.load(); Ethos.common.copyright("Anytao"); }) </script>
Hey. It’s simple and useful.
更多闲言碎语,关注anytao.net
2010/10/22 | http://anytao.cnblogs.com/ | http://anytao.net/blog/post/2010/10/22/anytao-devstory-15-use-namespace-in-js.aspx
本文以“现状”提供且没有任何担保,同时也没有授予任何权利。 | This posting is provided "AS IS" with no warranties, and confers no rights.
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
Worktile,新一代简单好用、体验极致的团队协同、项目管理工具,让你和你的团队随时随地一起工作。完全免费,现在就去了解一下吧。
https://worktile.com