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


 本文示例源代码或素材下载

  主要内容

  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>

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

  单击按钮后:

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3