首先定义namespace函数:
function $namespace(p_namespace) {
var parts = p_namespace.split(".");
if (parts.length == 0) {
return null;
}
try {
eval(parts[0]);
} catch (e) {
eval(parts[0] + " = new NameSpace('" + parts[0] + "');");
}
var root = eval(parts[0]);
var space = parts[0];
for (var i = 1; i < parts.length; i++) {
space += "." + parts[i];
if (!eval(space)) {
eval(space + " = new NameSpace('" + space + "');");
}
}
return eval(p_namespace);
}
function NameSpace(p_fullName) {
var me = this;
var _parts = p_fullName.split('.');
/// <summary>返回此命名空间的全名。</summary>
me.fullName = p_fullName;
/// <summary>返回此命名空间的名称(将不包含它的父级命名空间)。</summary>
me.name = _parts[_parts.length - 1];
/// <summary>返回此命名空间中的所有类或静态实例成员。</summary>
me.getMembers = function() {
var members = new Array();
for (var memberIndex in me) {
if (memberIndex != "getMembers" && memberIndex != "fullName" && memberIndex != "name") {
members.add(memberIndex);
}
}
return members;
}
}
然后利用namespace自定义方法,如:
(function(){
$namespace("com.form");
com.form.Tree = function() {
var a,
b;
this.fn = function(){
console.log(11);
}
}
})()
最后就可以调用了:
<script type="text/javascript">
var tree = new com.form.Tree();
tree.fn();
</script>