Atlas学习手记(27):JavaScript面向对象的扩展(一):命名空间Namespace

Javascript中并没有空间、类、接口这些概念,Atlas对这些东西实现封装了,增强了JavaScript面向对象方面的能力,本文看一下如何使用命名空间。

 

主要内容

1.概述

2.完整示例

 

一.概述

Javascript中并没有空间、类、接口这些概念,Atlas对这些东西进行了封装,增强了JavaScript面向对象方面的能力,本文看一下如何使用命名空间。在使用命名空间时有两个方法是需要我们注意的。

registerNamespace:注册一个命名空间

registerClass:注册一个类到某个命名空间中

二.完整示例

1.新建一个Atlas Web Site后,添加一个Namespace.js的文件,在这里我们注册一个Demo的命名空间,并创建Person类,把它注册到Demo命名空间中,如下所示:

// JScript File

Type.registerNamespace(
"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;

    }


    
this.getName = function() {

        
return _firstName + ' ' + _lastName;

    }


    
this.dispose = function() {

        alert('bye ' 
+ this.getName());

    }


}


Demo.Person.registerClass('Demo.Person', 
null, Sys.IDisposable);

2.在ASPX页面中添加ScriptManager,这个总是不能少的:

<atlas:ScriptManager runat="server" ID="scriptManager" />

3.引入我们刚才创建的JS文件:

<script type="text/javascript" src="Namespace.js"></script>

4.现在就可以在前端脚本中调用了:

<script type="text/javascript" language="JavaScript">

function OnButton1Click() 

{

    
var testPerson = new Demo.Person('John', 'Smith', 'john.smith@example.com');

    alert(testPerson.getFirstName() 
+ " " + testPerson.getLastName() );

    
return false;

}


</script>

5.添加一个Button,在它的单击事件中来调用:

<div>

        This example and puts the Person class in the "Demo" namespace.

        
<br />

        
<br />

        
<input id="Button1" value="Create Demo.Person" type="button" onclick="return OnButton1Click()" />

</div>

看看上面编写的代码,是不是很有面向对象的感觉呢?编译运行:

单击按钮后:

完整示例下载:http://files.cnblogs.com/Terrylee/AtlasNamespaceDemo.rar
作者:TerryLee
出处:http://terrylee.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2006-09-17 18:01 TerryLee 阅读(3585) 评论(9)  编辑 收藏 网摘 所属分类: [08]  Web开发

  回复  引用  查看    
#1楼 2006-09-17 18:10 | Clingingboy      
TerryLee出的好快呀,一天写两篇.周末也该出去玩玩
  回复  引用  查看    
#2楼 [楼主]2006-09-17 18:29 | TerryLee      
@Clingingboy
不止两篇哦,后面还有,呵呵:-)
  回复  引用  查看    
#3楼 2006-09-17 19:13 | Clingingboy      
高产呀
  回复  引用  查看    
#4楼 [楼主]2006-09-17 19:22 | TerryLee      
@Clingingboy
谢谢,这个周末没什么事,平时比较忙
  回复  引用  查看    
#5楼 2006-09-17 22:14 | 戴南      
不错不错
高产优质~
  回复  引用  查看    
#6楼 [楼主]2006-09-17 22:49 | TerryLee      
@戴南
呵呵,谢谢:-)
  回复  引用    
#7楼 2006-09-21 11:51 | yingsa [未注册用户]
写的太棒了
  回复  引用  查看    
#8楼 2006-09-28 16:30 | frack      
写的太好了。我问一个问题,就是我按照你的源代码编写,但是运行的时候说我的“Type”未定义。这是什么原因?
  回复  引用    
#9楼 2007-01-17 00:25 | snyod [未注册用户]
代表党(.NET平台)感谢您.
全部收藏..




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-09-17 18:19 编辑过
Google站内搜索

相关文章:

相关链接: