面向对象的JavaScript

面向对象的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); 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值