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

javasript 面向对象相关推荐

  1. java arraylist 方法返回值_返回arraylist方法

    ArrayList 什么是ArrayList 可以简单的认为是一个动态数组:实际上ArrayList就是用数组实现的,长度不够时,调用Arrays.copyOf方法,拷贝当前数组到一个新的长度更大的数 ...

  2. 分享 75 个精选的 JavaSript 基础知识点(中)

    由于篇幅过长,我将此系列分成上中下三篇,上一篇文章<分享 75 个精选的 JavaSript 基础知识点(上)>,这是中篇. 什么是IIFE,它的用途是什么? Function.proto ...

  3. 悟透JavaScript(理解JS面向对象的好文章)

    引子 编程世界里只存在两种基本元素,一个是数据,一个是代码.编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力. 数据天生就是文静的,总想保持自己固有的本色:而代码却天生活泼,总想改变这个 ...

  4. 【AJAX】JavaScript的面向对象

    Ajax中后端数据返回后需要前端通过JavaScript来实现动态数据更新的问题.所以,在Ajax中加深了一遍JavaScript面向对象的印象. 基础部分: JavaScript中创建对象并简单对象 ...

  5. 面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?

    AutoSAR入门到精通系列讲解 将从2019年开始更新关于AutoSAR的知识,从入门到精通,博主xyfx和大家一起进步 雪云飞星 ¥29.90 去订阅 简单地说结构化分析方法主要用来分析系统的功能 ...

  6. 2021年大数据常用语言Scala(二十八):scala面向对象 MAVEN依赖和类

    目录 scala面向对象 MAVEN依赖 类 - 掌握 创建类和对象 - 掌握 getter/setter - 了解 类的构造器 - 掌握 scala面向对象 MAVEN依赖 <?xml ver ...

  7. php面向对象程序设计,PHP面向对象程序设计类的定义与用法简单示例

    本文实例讲述了PHP面向对象程序设计类的定义与用法.分享给大家供大家参考,具体如下: class Person { private $name; private $sex; private $age; ...

  8. java面向过程和面向对象

    面向过程(Procedure Oriented):说的是功能的行为 面向对象(Object Oriented,简称OO):说的是功能的对象 面向过程理解: 当学习java的时候先了解java语言优良的 ...

  9. day22_面向对象

    面向过程: 优点是:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可. 缺点是:一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身. 面向对象: 优点是:解决了程序的扩展性.对 ...

最新文章

  1. .NET(C#)有哪些主流的ORM框架,FreeSql,SqlSugar,Dapper,EF还是...
  2. Spring教程--入门程序
  3. js 获取session_Python实战案例:这是你见过的最详细的JS加密登录某博
  4. JAVA面试题------------final 关键字是干什么用的?谈谈你的理解。
  5. VBA之EXCEL删除和设置单元格行高等
  6. vue swiper循环播放无效解决
  7. express+vue+mongodb+session 实现注册登录
  8. redis——数据结构(字典、链表、字符串)
  9. java单词查找树_Trie 单词查找树 java实现(来自算法第4版)
  10. SharePoint2013升级SP1后,运行配置向导报错:未注册sharepoint服务
  11. OpenCV学习笔记:反色显示图片、鼠标事件、键盘事件和窗口滑动条操作
  12. Linux---信号及其使用简单讲解
  13. pytorch学习笔记(十五):模型构造
  14. Matlab系列教程_基础知识_基本矩阵操作
  15. V4L2像素格式及其对应的含义
  16. python UI自动化无界面运行
  17. java球球的表面积和体积代码_【编程1小时】球体表面积和体积计算
  18. C语言嵌入式系统编程修炼之道
  19. 一文搞懂保险的前世今生,说实话,每个人其实都需要保险
  20. HTML 图片鼠标悬停动态效果

热门文章

  1. 推荐七款精挑细选的电脑软件,欢迎收藏!
  2. 盘点三个JavaScript案例——实现限时秒杀、定时跳转、改变盒子大小
  3. 分享一些笔记本电脑日常保养技巧
  4. 别去取悦,心里没你的人
  5. 数值的加减会改变python中id,在python中调用Nan值并更改为数字
  6. 计算机应用领域的CIMS,计算机的应用领域
  7. mysql008where.or.in查询
  8. ux和ui_他们说,以UX / UI设计师的身份加入一家初创公司。 他们说,这会很有趣。
  9. 【赠书福利】不扶好眼镜,请别打开这本挑战JS语言特性的书
  10. 知道无人驾驶的网络安全有多重要吗?英国政府都决定插手开发了