JS 核心语言基础语法 之 面向对象第一讲
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
面向对象的这种思路得多写写示例代码慢慢体会,我上面只是浅显的讲了一下我的理解以及学习它需要了解的概念,具体实践还得多写多查多看。我其实这部分掌握的也不是很好,也在努力提升中,看到我文章的小伙伴儿们,如果遇到问题,欢迎留言大家一起探讨学习啊。
- 点赞
- 收藏
- 关注作者
评论(0)