美文网首页Web前端之路
面向对象or基于对象?

面向对象or基于对象?

作者: ZoranLee | 来源:发表于2020-05-13 11:29 被阅读0次

    JavaScript是面向对象语言还是基于对象的语言?这是一个问题


    其他语言相比

    • ES6之后才有对象的概念,却没有类的概念
    • JavaScript对象里边能自由添加属性(其他语言不可以)

    对象

    • 定义:可以触摸或者可以看见、人的智力可理解、可以指导思考或行动(进行想象或施加动作)的东西;( ------Grady Booch《面向对象分析与设计》)
    • 特征:
      • 有唯一标识性 (完全相同的两个对象,也并非同一个对象)
      • 有状态 (同一对象可能处于不同状态之下)
      • 有行为 (对象的状态,可能因为它的行为产生变迁)
    image.png
    • JavaScript中,对象的状态和行为其实都被抽象为了属性(property);

    两类属性

    • 数据属性

    • 访问器(getter/setter)属性

    image.png
    • JavaScript 对象的运行时是一个“属性的集合”,是一个属性的索引结构

    和其他基于类的面向对象不同的是JavaScript提供了完全运行时的对象系统,它可以模仿多数面向对象编程范式,所以它也是正统的面向对象语言

    关于对象的描述

    • 类(如C++、Java)
    • 原型(JavaScript)
      基于原型体系早期产生的框架:PrototypeJS、Dojo

    相关文章

      网友评论

        本文标题:面向对象or基于对象?

        本文链接:https://www.haomeiwen.com/subject/ucwgnhtx.html