面向对象or基于对象?

JavaScript是面向对象语言还是基于对象的语言?这是一个问题 其他语言相比 ES6之后才有对象的概念,却没有类的概念 JavaScript对象里边能自由添加属性(其他语言不可以) 对象 定义:可以触摸或者可以看见、人的智力可理解、可以指导思考或行动(进行想象或施加动作)的东西;( ------Grady Booch《面向对象分析与设计》) 特征: 有唯一标识性 (完全相同的两个对象,也并非同一个对象) 有状态 (同一对象可能处于不同状态之下) 有行为 (对象的状态,可能因为它的行为产生变迁) image.png JavaScript中,对象的状态和行为其实都被抽象为了属性(property); 两类属性 数据属性 访问器(getter/setter)属性 image.png JavaScript 对象的运行时是一个“属性的集合”,是一个属性的索引结构 和其他基于类的面向对象不同的是JavaScript提供了完全运行时的对象系统,它可以模仿多数面向对象编程范式,所以它也是正统的面向对象语言 关于对象的描述 类(如C++、Java) 原型(JavaScript) 基于原型体系早期产生的框架:PrototypeJS、Dojo

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):