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>

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

单击按钮后:

完整示例下载

posted on 2008-03-25 12:23  秋天  阅读(201)  评论(0编辑  收藏  举报

导航