javasript 面向对象

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);

转载于:https://www.cnblogs.com/skyangell/archive/2008/03/08/1096416.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值