@

面向过程编程P OP(Process oriented programming)

面向过程就是分析出解决问题的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。

  • 优点:性能比面向对象高,适合跟硬件联系很紧密的东西,例如单片机就采用的面向过程编程
  • 缺点:没有面向对象易维护、易复用、易扩展。

面向对象编程OOP(Object Oriented Programming)

面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作。

面向对象编程具有灵活性、代码可复用、容易维护和开发的优点,更适合多人合作的大型软件项目

  • 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护
  • 缺点: 性能比面向过程低

ES6中的类和对象

面向对象

面向对象的思维特点:

  • 抽取(对象)对象共用的属性和行为组织(封装)成一个类(模板)
  • 对类进行实例化,获取类的对象

1、对象

现实生活中:万物皆对象,对象是一个具体的事物,看得见摸得着的实物。

在javascript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如:字符串、数组、数值、函数等。

对象是由属性和方法组成的:

  • 属性: 事物的特征,在对象中用属性来表示
  • 方法: 事物的行为,在对象中用方法来表示

2、类class

在ES6中新增加了类的概念,可以使用class关键字声明一个类,之后以这个类来实例化对象。

类抽象了对象的公共部分,它泛指某一大类(class)

对象特指某一个,通过类实例化一个具体的对象。

3、创建类

语法:

class name {
//class body
}

创建实例:

 var xx = new name() //类必须使用new实例化对象

4、 创建对象

constructor()的方法是类的构造函数(默认方法),用于传递参数,返回实例对象,通过new命令生成对象实例时,自动调用该方法,如果没有显示定义,类内部会自动给我们创建一个constructor()

//创建类class
class Star {
constructor(uname) {
this.uname = uname
}
} // 利用类创建对象 new
let b = new Star('蓝风')
console.log(b) //蓝风

创建类和对象的几点注意事项:

  1. 通过class关键字创建类,类名我们还是习惯性定义首写字母大写
  2. 类里面有个constructor函数,可以接受传递过来的参数,同时返回实例对象
  3. constructor 函数只要new生成实例时,就会自动调用这个函数,如果我们不写这个函数,类也会自动生成这个函数
  4. 生成实例 new 不能省略
  5. 最后注意语法规范,创建类 类名后面不要加小括号,生成实例 类名后面要加小括号,构造函数不需要加function

5、类添加方法

class Person {
constructor(name, age) {
this.name = name
this.age = age
}
say () {
console.log(this.name + '你好')
}
}
let person1 = new Person('蓝风', 28)
person1.say() // 蓝风你好

添加类方法注意事项:

  1. 我们类里面的所有函数不需要写function
  2. 多个函数方法之间不需要添加逗号分隔

总结

这篇文章主要介绍了面向过程编程和面向对象编程各自的优缺点,ES6类和对象,创建类和对象等,这是自己的学习笔记,仅代表自己的观点,还请各位指教。如果想了解更多,请扫描下面二维码:

ES6学习笔记(一):轻松搞懂面向对象编程、类和对象的更多相关文章

  1. Python记录14:面向对象编程 类和对象

    '''现在主流的编程思想有两种,一种是面向对象,一种是面向过程面向过程编程 核心是过程二字,过程指的是解决问题的步骤,即先干什么.再干什么.最后干什么... 基于该思想编写程序就好比再设计一条流水线, ...

  2. JavaScript学习笔记(十六)——面向对象编程

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

  3. python学习笔记(十九)面向对象编程,类

    一.面向对象编程 面向对象,是一种程序设计思想. 编程范式:编程范式就是你按照什么方式去编程,去实现一个功能.不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路,两种最重要的编程范式分 ...

  4. 《objective-c基础教程》学习笔记(四)—— OC面向对象编程初探

    在上篇博文中,我们编写了一个可以输出不同几何类型的小程序.通过C语言的struct结构体,给大家感受了下,对象的大概样子. 如果用Obejctive-C的面向对象的特征来实现.那么,drawShape ...

  5. python学习笔记:第17天 面向对象03 类与类之间的关系

    一.类与类之间的依赖关系 ⼤千世界, 万物之间皆有规则和规律. 我们的类和对象是对⼤千世界中的所有事物进⾏归类. 那事物之间存在着相对应的关系. 类与类之间也同样如此. 在⾯向对象的世界中. 类与类 ...

  6. C++ Primer(第4版)-学习笔记-第4部分:面向对象编程与泛型编程

    第15章 面向对象编程OOP(Object-oriented programming)           面向对象编程基于三个基本概念:数据抽象.继承和动态绑定.      在 C++ 中,用类进行 ...

  7. 搞懂Python的类和对象名称空间

    代码块的分类 python中分几种代码块类型,它们都有自己的作用域,或者说名称空间: 文件或模块整体是一个代码块,名称空间为全局范围 函数代码块,名称空间为函数自身范围,是本地作用域,在全局范围的内层 ...

  8. scala快速学习笔记(二):控制结构,类和对象

    IV.控制结构 1.if/else 除基本用法外,if/else语句能用来赋值,进而代替?:运算符.这得益于在Scala中,每个语句块都有值,就是该语句块最后一个语句的值.请看下面的代码. def a ...

  9. 13_Python的面向对象编程-类class,对象object,实例instance

    1.面向对象概述 1.类是用来描述对象的工具,把拥有相同属性和行为的对象分为一组     2.对象是由类实例化出来的一个具体的对象         属性: 对象拥有的名词,用变量表示         ...

随机推荐

  1. Oracle GoldenGate 12.3微服务架构指北

    Microservices Architecture introduction Microservices Architecture is a method or approach to develo ...

  2. 解决谷歌浏览器设置font-family属性不起作用,(css中设置了font-family:没有用)css字体属性没用

    嗯,这个问题百思不得解.其他的浏览器器都没问题,在谷歌上就不行,网上找了很多,都没效果,后才发现,当然同样的问题可能错不一样的地方,我的解决方案: 感觉主要原因是自己也没查到,乱改一堆,就OK啦: 1 ...

  3. emeditor安装及插件信息

    原文地址:https://www.52pojie.cn/thread-658917-1-1.html 废话不多说 官网:https://www.emeditor.com/download/ 安装版:6 ...

  4. 管理2000+Docker镜像,Kolla是如何做到的

    根据 DockerHub 上的数据,整个 Kolla 项目管理的 镜像有 2000 多个,这么多的镜像,是怎么定义,又是如何构建的呢? 简介 我们一直在说的 Kolla,通常情况下泛指,包括了 Kol ...

  5. 学习  解决用户验证、单点登录、api访问控制的开源框架 的 十月 第一弹:

    step one 去饭 源码 ps :https://identityserver.io/ 这个官网. ps: https://github.com/IdentityServer 这是 源码网

  6. 《代码整洁之道》&《程序员的职业素养》

    这是why技术的第32篇原创文章 春节期间读了两本技术相关的书籍:编程大师Bob大叔的<代码整洁之道>和<代码整洁之道:程序员的职业素养>. <代码整洁之道>出版于 ...

  7. EL表达式(Exprission language)

    EL介绍 Expressive Language, JSP2.0引入,简化jsp开发中对对象的引用,(可以直接读取对象的属性,不需要像之前java脚本那样去做,比较繁琐),使得访问存储在JavaBea ...

  8. SpringMVC进阶(二)

    一.高级参数绑定 1.1. 绑定数组 Controller方法中可以用String[]接收,或者pojo的String[]属性接收.两种方式任选其一即可. /** * 包装类型 绑定数组类型,可以使用 ...

  9. 深入了解Zookeeper

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等.Zookeeper是hadoop的一个子项目,其 ...

  10. springboot之整合基本的jdbc并操作Mysql数据库

    对于数据访问层,无论是SQL还是NOSQL,springboot默认采用整合spring data方式进行统一处理,添加大量自动配置,屏蔽了许多设置,引入各种xxxTemplate,xxxReposi ...