什么是面向过程编程与面向过程编程语言?
- 面向过程编程也是一种编程范式或编程风格。它以过程(可以理解为方法、函数、操作)作为组织代码的基本单元,以数据(可以理解为成员变量、属性)与方法相分离为最主要的特点。面向过程风格是一种流程化的编程风格,通过拼接一组顺序执行的方法来操作数据完成一项功能。
- 面向过程编程语言首先是一种编程语言。它最大的特点是不支持类和对象两个语法概念,不支持丰富的面向对象编程特性(比如继承、多态、封装),仅支持面向过程编程。
面向对象编程相比面向过程编程有哪些优势?
- 对于大规模复杂程序的开发,程序的处理流程并非单一的一条主线,而是错综复杂的网状结构。面向对象编程比起面向过程编程,更能应对这种复杂类型的程序开发。
- 面向对象编程相比面向过程编程,具有更加丰富的特性(封装、抽象、继承、多态)。利用这些特性编写出来的代码,更加易扩展、易复用、易维护。
- 从编程语言跟机器打交道的方式的演进规律中,我们可以总结出:面向对象编程语言比起面向过程编程语言,更加人性化、更加高级、更加智能。
哪些代码设计看似是面向对象,实际是面向过程的?
- 滥用 getter、setter 方法
- 滥用全局变量和全局方法
- 定义数据和方法分离的类 思考:
JavaScript 到底是面向对象还是基于对象?
JavaScript介绍
JavaScript(通常缩写为JS)是一种高级的、解释型的编程语言[8]。JavaScript是一门基于原型、函数先行的语言[9],是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。---wiki 起源 布兰登·艾奇(Bremdan Eich),在 1995 年受聘于网景(Netscape)公司。当时网景公司急需一种网页脚本语言,使得浏览器可以与网页互动,Eich 用了 10 天的时间创造了 Javascript。
那 10 天 Eich 做的大概事情可以在 Brendan Eich - JavaScript at 20 9:55 秒的时候看到。
总的来说他的设计思路是这样的
(1)借鉴 C 语言的基本语法;
(2)借鉴 Java 语言的数据类型和内存管理;
(3)借鉴 Scheme 语言,将函数提升到"第一等公民"(first class)的地位;
(4)借鉴 Self 语言,使用基于原型(prototype)的继承机制。
Eich 说,JavaScript 是 C 语言和 Self 语言的结合,我想无论怎样 JavaScript 都难以摆脱它们的影子。 来自前手淘前端负责人 winter讲解
在我看来,不论我们使用什么样的编程语言,我们都先应该去理解对象的本质特征(参考 Grandy Booch《面向对象分析与设计》)。总结来看,对象有如下几个特点。
- 对象具有唯一标识性:即使完全相同的两个对象,也并非同一个对象。
- 对象有状态:对象具有状态,同一对象可能处于不同状态下。
- 对象具有行为:即对象的状态可能因为它的行为产生变迁。 .... 你甚至可以理解为什么会有“JavaScript 不是面向对象”这样的说法:JavaScript 的对象设计跟目前主流基于类的面向对象差异非常大。而事实上,这样的对象系统设计虽然特别,但是 JavaScript 提供了完全运行时的对象系统,这使得它可以模仿多数面向对象编程范式(下一节课我们会给你介绍 JavaScript 中两种面向对象编程的范式:基于类和基于原型),所以它也是正统的面向对象语言。 JavaScript 语言标准也已经明确说明,JavaScript 是一门面向对象的语言,我想标准中能这样说正因为 JavaScript 的高度动态性的对象系统。 所以,我们应该在理解其设计思想的基础上充分挖掘它的能力,而不是机械地模仿其它语言
参考文档:
zh.wikipedia.org/wiki/JavaSc…
cheogo.github.io/learn-javas…
www.infoq.cn/article/3*8…