转载自:http://www.cnblogs.com/anytao/archive/2010/10/22/anytao-devstory-15-use-namespace-in-js.html
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:
{
public class Console
{
public static void Read( string msg)
{
}
}
}
Then, we can use Console as below:
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.
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.
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( " Ethos.common " );
XLR8.feed =
{
alert: function (msg) {
alert(msg);
},
load: function () {
}
};
Ethos.common.copyright = function BindData(data) {
$( " #copyright " ).html( data + " / Ethos " );
};
$(document).ready( function () {
XLR8.feed.alert( " Hello " );
XLR8.feed.load();
Ethos.common.copyright( " Anytao " );
})
< / script>
Hey. It’s simple and useful.
谢谢浏览!