名字空间使你能够把一些公共的功能性函数组合到同一个名字空间中,下面的这个例子将告诉你怎么样把Person这个类添加到名字空间Demo里头,使用的方法是:Type.registerNamespace和Type.registerClass.
首先我们还是那几个实验的所做的站点内添加个页面。
我们首先添加个js文件,他的主要功能是注册个Demo名字空间和把类Person注册到名字空间Demo里去
右击站点选add new item,在弹出的对话框中选:jscript file,名字为Namespace.js.
写如下代码:
Type.registerNamespace("Demo");
//首先注册个名字空间Demo
//给名字空间添加个类
Demo.Person = function(firstName, lastName, emailAddress) {
var _firstName = firstName;
var _lastName = lastName;
var _emailAddress = emailAddress;
//类方法
this.getFirstName = function() {
return _firstName;
}
this.getLastName = function() {
return _lastName;
}
}
//注册类
Type.registerClass('Demo.Person', null, Web.IDisposable);
在解决方案管理器里面,右击站点,选add new item,在弹出的对话框中选:web form,名字为Namespace.aspx,去掉代码后置和选择Mater页前面的小勾,点add,在Namespace.aspx的代码视图里面我们仍然是先修改xhtm文档类型声明为如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
再去掉<script runat="server"></script>.
修改<title>为名字空间Namespace.
然后在</title>标记后面,当然也是在<head>标记里面添加下面几个对atlas的js脚本库的引用:
<atlas:Script ID="Script1" runat="server" Path="~/ScriptLibrary/AtlasCompat.js" Browser="Mozilla" />
<atlas:Script ID="Script2" runat="server" Path="~/ScriptLibrary/AtlasCompat.js" Browser="Firefox" />
<atlas:Script ID="Script3" runat="server" Path="~/ScriptLibrary/AtlasRuntime.js"/>
在这个例子里面我们可以把form标记去掉。我们再在<div>标记里面放段话和一个按钮,如下:
在这个例子中我们将把Person这个类添加到Demo这个Namespace里<br>
<input type="button" value="添加类到名字空间" onclick="return ThisClick();" id="button1"/>
写好的代码如下,有注释:
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>名字空间Namespace</title>
<atlas:Script ID="Script1" runat="server" Path="~/ScriptLibrary/AtlasCompat.js" Browser="Mozilla" />
<atlas:Script ID="Script2" runat="server" Path="~/ScriptLibrary/AtlasCompat.js" Browser="Firefox" />
<atlas:Script ID="Script3" runat="server" Path="~/ScriptLibrary/AtlasRuntime.js"/>
</head>
<body>
<div>
在这个例子中我们将把Person这个类添加到Demo这个Namespace里<br>
<input id="Button1" value="把Person类添加到Demo空间" type="button" onclick="return ThisClick()" />
</div>
<script type="text/javascript" src="Namespace.js"></script>
<script type="text/javascript" language="javascript">
function ThisClick()
{
//定义个Person类对象变量,有三个参数
var testPerson = new Demo.Person('老鼠','吴旗娃师傅','pwqzc1688@google.com');
//调用Person类的两个方法得到第一个参数和二二个参数弹出信息框
alert(testPerson.getFirstName()+"是"+testPerson.getLastName()+"的徒弟!");
//再return false,当然按钮的单击事件里也return ThisClick,是为了防止在其他浏览器里面弹出js控制台
return false;
}
</script>
</body>
</html>
大家千万要注意, <script type="text/javascript" src="Namespace.js"></script>
不能够写成 <script type="text/javascript" src="Namespace.js" />
不知道为什么这样写就会弹出ThisClick没有定义的js错误!
还没有抓个图的,现在抓个图看下效果!是在firefox里面抓的图: