zoukankan      html  css  js  c++  java
  • 面向对象的JavaScript

    JavaScript 是一种解释型的、基于对象的脚本语言。尽管与 C++、C# 这样成熟的面向对象的语言相比,JavaScript的功能要弱一些,但对于它的预期用途而言,JavaScript的功能已经足够大了。但是由于各种各样的原因,我们在实际进行开发的过程中往往忽略了他基于对象的这一特性,以至JavaScript编写的程序显的杂乱无章。这样不仅不易于观看,更不易于修改。今天就让我们来看看JavaScript基于对象的这一特性。

    类:
    function DelegateObject(){
        
    var obj = new Object();
        obj.value 
    = "";
        obj.FormatString 
    = null;
        obj.toString 
    = function _toString(){
            
    if(obj.FormatString != null)
                
    return this.FormatString(this.Value);
            
    else
                
    return this.Value;
        }
       
        
    return obj;
    }

    var obj = new DelegateObject();


    委托:
    function DelegateObject(){
        var obj = new Object();
        obj.value = "";
        obj.FormatString = null;
        obj.toString = function _toString(){
            if(obj.FormatString != null)
                return this.FormatString(this.Value);
            else
                return this.Value;
        }   
        return obj;
    }

    function ConvertToString(value){
        return "Result:" + value;
    }
    var obj = new DelegateObject();
    obj.Value = "Hello World!";
    obj.FormatString = ConvertToString;
    document.write(obj.toString());

    重写:
    function DelegateObject(){
        var obj = new Object();
        obj.toString = function _toString(){
            if(obj.FormatString != null)
                return this.FormatString(this.Value);
            else
                return this.Value;
        }   
        return obj;
    }

    继承:
    function DelegateObject(){
        var obj = new Object();
        obj.value = "";
        obj.FormatString = null;
        obj.toString = function _toString(){
            if(obj.FormatString != null)
                return this.FormatString(this.Value);
            else
                return this.Value;
        }   
        return obj;
    }
    function Class2(){
        var obj = new DelegateObject();
        return obj;
    }
    function ConvertTOString(value){
        return "Result:" + value;
    }

    var obj = new Class2();
    obj.Value  = "Hello World!";
    obj.FormatString = ConvertTOString;
    document.write(obj.toString());

    事件:
    function EventHandler(){
        var eventobj = new Object();
        eventobj._eventHandler = null;
        eventobj.Activate = function _activate(){
            if(eventobj._eventHandler != null)
                eventobj._eventHandler();
        }
        eventobj.Add = function _add(eventHandler){
            eventobj._eventHandler = EventHandler;
        }
        eventobj.Remove = function _remove(){
            eventobj._eventHandler = null;
        }
        return eventobj;
    }

    function mouseClick(){
        alert("Hello World!");
    }

    var obj = new EventHandler();
    obj.Add(mouseClick());
    obj.Activate();


    枚举:
    function _StatusList(){
        var object = new Object();
        object.正常= "Normal";
        object.删除= "Delete";
        object.审核通过= "Auditing";
        object.驳回 = "OverRule";
        return object;
    }
    Object.prototype.StatusList = new _StatusList();
    function TObject(){
        var obj = new Object();
        obj.Type = "YiZhu";
        obj.Status = Object.StatusList.审核通过;
    }
    alert(obj.Status);
  • 相关阅读:
    在每个类声明之后、每个函数定义结束之后都要加空行。
    不提倡使用全局变量
    头文件中只存放“声明”而不存放“定义”
    用 #include “filename.h” 格式来引用非标准库的头文件
    用 #include <filename.h> 格式来引用标准库的头文件
    为了防止头文件被重复引用
    java Excel导入、自适应版本、将Excel转成List<map>对象
    selenium用java找到表格某一行某一列中含有特定文字的某个元素
    关于java中创建文件,并且写入内容
    java把一个文件的内容复制到另外一个文件
  • 原文地址:https://www.cnblogs.com/xiang/p/368865.html
Copyright © 2011-2022 走看看