1. 面向对象的基本概念

在学习了很长一段时间之后,我们从大一开始的C语言的面向过程的方法在潜移默化的变为现在的面向对象的方法,但是一直没有具体的来解释面向对象,这一次我们来看一下面向对象编程一些知识。

面向对象也即是OOP,Object Oriented Programming,是计算机的一种编程架构,OOP的基本原则是计算机是由子程序作用的单个或者多个对象组合而成,包含属性和方法的对象是类的实例,但是JavaScript中没有类的概念,而是直接使用对象来实现编程。

面向对象的三大特性,当然加上抽象就是四大特性。封装,继承,多态。多态在js中的存在感并不大,我们着重来看一下封装和继承

封装

封装就是将一堆方法和属性放在一起,能够将一个实体的信息、功能、响应都封装到一个单独对象中的特性。

继承

继承就是让我们最大限度的重用代码,在面向过程编程中,我们的代码必须依次执行,代码之间的连贯性较大,但是可移植性太差,即便是简单的声明变量

原型

我们在学习面向对象的过程中,原型是必不可少的一个环节,原型,就是我们对象的原型对象,在继承中也是靠原型链来找到的,prototype属性不是所都的对象都有的,但是-proto-是所有数据类型都有的,我们之前学过的基本数据类型存在栈区,引用数据类型存在堆区,这里我们就可以很好的看出的,可以这么理解,在堆区除了我们定义的一些数据,还有-proto-,如果有一个方法是共用的,那么我们我们可以使用将其存放在-proto-中,这样可以节省我们的储存空间。

原型链

当我们要访问某个对象的属性或方法时,首先找到肯定是在其自己的构造函数中寻找,如果没有则在自己的原型中寻找,如果还是没有,则在原型的原型中选择,直到Object的原型,找不到则返回null =,这便是我们的原型链。