0
点赞
收藏
分享

微信扫一扫

面向对象or基于对象?

花明 2021-09-28 阅读 68
技术

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


其他语言相比

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

对象

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

  • JavaScript中,对象的状态和行为其实都被抽象为了属性(property);

两类属性

  • 数据属性

  • 访问器(getter/setter)属性

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

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

关于对象的描述

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

相关推荐

0 条评论