• 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>

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

    单击按钮后:

    完整示例下载
  • 相关阅读:
    【图论】Tarjan 缩点
    【高级数据结构】左偏树
    【网络流·最大流】ISAP(Improved Shortest Augumenting Path)详解
    linux 压缩和解压文件(.gz.bz2)
    Python requests库
    jmeter 压测之动态数据关联
    Jmeter 之数据库测试
    Jmeter 参数未编码异常:java.net.URISyntaxException: Illegal character in query at index 172
    Fiddler 过滤地址设置
    loadrunner 连接mysql数据库获取数据进行参数化
  • 原文地址:https://www.cnblogs.com/qfb620/p/1121063.html
Copyright © 2020-2023  润新知