面向对象的JavaScript

来源:互联网 发布:nginx rewrite break 编辑:程序博客网 时间:2024/05/01 13:23

导读:
  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);
  

本文转自
http://czhenq.cnblogs.com/archive/2006/03/25/358345.html