面向对象

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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值