zoukankan      html  css  js  c++  java
  • 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>

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

    单击按钮后:

    完整示例下载
  • 相关阅读:
    一致性哈希的理解与实践
    nil in Go
    为什么Go没有math.Min/Max(int, int) 函数?
    What happens when I type kubectl run?
    kubelet简要分析
    编译安装nginx和模块
    nginx与tengine添加check模块(nginx_upstream_check_module)
    多台ESXI 6.5 添加 iSCSI 共享存储 --centos 7.4 作为target
    Cannot open the disk '/vmfs/volumes/5e97f429-a56d6ea0-1ef3-000c29a09445/oracle_node1/oracle_node1_1.vmdk' or one of the snapshot disks it depends on.
    RabbitMQ windows2016 镜像模式 haproxy+keepalived
  • 原文地址:https://www.cnblogs.com/qfb620/p/1121063.html
Copyright © 2011-2022 走看看