JS 核心语言基础语法 之 面向对象第一讲

举报
hwJw19 发表于 2020/12/11 17:46:54 2020/12/11
【摘要】     JavaScript面向对象,在我理解,是一种编程思想。说到面向对象,不得不说另一个概念:面向过程。下面我们简单来说一下什么事面向过程编程,什么又是面向对象编程。    面向过程:    - 面向过程指的是将程序的逻辑分解为一个一个的步骤,通过对每个步骤的抽象,来完成程序    - 面向过程的编程思想,将一个功能分解为一个一个小的步骤,我们通过完成一个一个的小的步骤来完成一个程序  ...

    JavaScript面向对象,在我理解,是一种编程思想。说到面向对象,不得不说另一个概念:面向过程。下面我们简单来说一下什么事面向过程编程,什么又是面向对象编程。

    面向过程:

    - 面向过程指的是将程序的逻辑分解为一个一个的步骤,通过对每个步骤的抽象,来完成程序
    - 面向过程的编程思想,将一个功能分解为一个一个小的步骤,我们通过完成一个一个的小的步骤来完成一个程序
    - 但是这种方式编写的代码往往只适用于一个功能,如果要实现别的功能,往往要重新编写代码,可复用性比较低,并且难于维护

    面向对象

    - 面向对象的编程,关注的是对象,而不关注过程
    - 面向对象的编程思想,将所有的功能统一保存到对应的对象中,要使用某个功能,直接找到对应的对象即可
    - 这种方式编写的程序,比较容易阅读,并且比较易于维护,容易复用
    - 但是这种方式编写,不太符合常规的思维,编写起来稍微麻烦一点

    简单来说,面向过程是就是按程序运行的逻辑一步一步的去写实现的代码,而面向对象是写一个对象,如果要实现某个功能,则去使用这个对象来实现这个功能。

    如果之前没有接触过面向对象这个概念,一直都是以面向过程的思路去编写代码的话,这个思路其实转变起来,还是有点费劲。(・ω≦)

    如果对于上面说的内容,有点迷糊,也没关系,我们先来了解一些面向对象的基本概念和相关要素什么的。

    每每说到面向对象,都得提到的就是它的三大特征:封装,继承,多态。

    - 封装指的是对象中的一些不希望被外部所访问的属性或方法,我们把它隐藏起来,不让对象外的其他对象或方法能随便访问到;

    - 通过继承我们可以使一个类获取到其他类中的属性和方法,这里的继承,你也可以理解为我们日常生活中的继承,如爸爸有双大眼睛,女儿继承了爸爸的大眼睛~

    - 多态从字面理解是多种形态,怎么说呢,比如我们创建了一个动物的对象,然后的它有一个吃的方法,如果狗去调用,就是狗吃骨头,如果猫去调用,就是猫吃小鱼,一个对象根据调用不同可以呈现多种形态;

    上面说的是面向对象的三大特征,具体的示例什么的,可以参见我另一篇博文:https://www.cnblogs.com/jiangtengteng/p/8479338.html

    说到面向对象,还得说的一个东西就是this,没用过this的话,刚跟它见面,可能会有点懵,this,其实就是一个指针,谁调用就指向谁,this的具体指向,可以参见以下四种情况:

    -当this作为函数来调用的时候,this指向全局window

    -当this作为对象的方法和属性来调用的时候,this指向该对象

    -当this作为构造函数来调用的时候,this指向创建出来的新对象

    -让this强制指向某个对象,call,apply

    具体的可以看另一篇文章:https://www.cnblogs.com/jiangtengteng/p/9667769.html

    最后要提到的一个东西是闭包,闭包是因为我们把变量或者方法封装了以后,但是外部还想拿到这个变量,就产生了闭包,闭包的作用,就是从外部拿里面的东西,像一个特殊的渠道一样,多了不说,参见我之前的文章https://www.cnblogs.com/jiangtengteng/p/9714243.html

    面向对象的这种思路得多写写示例代码慢慢体会,我上面只是浅显的讲了一下我的理解以及学习它需要了解的概念,具体实践还得多写多查多看。我其实这部分掌握的也不是很好,也在努力提升中,看到我文章的小伙伴儿们,如果遇到问题,欢迎留言大家一起探讨学习啊。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。