// 声明一个全局对象RegisterNameSpace函数,参数为名称空间全路径,如"cnblogs.blog"
RegisterNameSpace = function (fullName) {
// 将命名空间切成N部分
var nsArray = fullName.split('.');
var strEval = "";
var strNS = "";
for (var i = 0; i < nsArray.length; i++) {
if (i != 0) {
strNS += ".";
}
strNS += nsArray[i];
// 依次创建构造命名空间对象(假如不存在的话)的语句
strEval += "if (typeof(" + strNS + ") == 'undefined') " + strNS + " = new Object();"
}
if (strEval != "") eval(strEval);
}RegisterNameSpace("cnblogs.blog");
RegisterNameSpace("cnblogs.news");
RegisterNameSpace("cnblogs.group");cnblogs.news.Article = function () {
var _this = this;
this.title = null;
this.content = null;
this.show = function () {
document.write("<h1>" + _this.title + "</h1>");
document.write("<p>" + _this.content + "</p>");
}
}关于命名空间,网上最多的都是以上一段。但是,用网上提供的方法实例化,打开页面后总是提示错误。// 实例化一个对象
var article = new cnblogs.news.Article();
// 给对象的属性赋值
article.title = "这是文章标题";
article.content = "这是文章内容";
// 调用对象的方法
article.show();
提示以下错误
网页错误详细信息
消息: 'cnblogs' 未定义
行: 99
字符: 3
代码: 0
URI: http://192.168.2.8/Manager/Login.aspx
我想要实现下面这样实例化的方式,是不是只能用命名空间,代码越简洁越好。谢谢大家!
var t=new AjaxCenter.Execute("str","parameter");
var t1=new AjaxCenter.Module("str")
解决方案 »
- Ext Js 2中 如何获取FormPanel下items的值
- 想写一个通用的 JS 拖曳类,请帮帮忙
- 求帮忙关于js实现网页全屏问题。。
- 日期格式的js问题
- 怎样在一个图片上,右击出现自己的右键菜单?主要是怎样判断是在一个图片上右击?
- 如何判断鼠标的左键是否已经按下?
- 如何用Javascript改变一个对象所引用的class???
- 关于一个层实现的菜单显示不被iframe挡住的问题?
- 一个JS动态按钮 onclick问题
- 微信小程序中swiper的高度太高导致页面无法完全显示内容,只是显示了部分内容,why?
- 怎么能让浏览器不自动进行url解码?
- 如何实现层的高度适合(100%和随内容选择)
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>javascript命名空间</title>
<script type="text/javascript">var AjaxCenter = window.AjaxCenter || {};AjaxCenter.Execute = function(str,parameter){
this.str = str;
this.parameter = parameter;
this.printInfo = function(){
alert(this.str+"->"+this.parameter);
}
}
</script>
</head><body>
<script type="text/javascript">
var t = new AjaxCenter.Execute("str1","parameter2");
t.printInfo();
</script>
</body>
</html>