JS面向对象编程
面向过程与面向对象
对象
万事万物皆为对象
对象是一个单独的的存在/单个事物的抽象
对象是一个容器,封装了属性prototype与方法method
优点:重复使用,简化代码,方便维护,开发效率高
面向过程:现写现用(自己做事)
面向对象:是一种编程思想,事先将功能编写好,使用时只需要关注功能的运用,而不需要这个功能的具体实现,在面向对象的编程过程中,需要关注的只有完成事情的对象(让别人去做)
JS中的对象是什么?
在 JS中,所谓对象就是键值对(key:value)的集合。将相关的变量和函数组合成一个整体------对象,对象中的变量叫做属性,函数叫做方法。
构造函数
在JavaScript中,构造函数是给对象添加属性,初始化属性用的
function Snake(){
this.width=20;
}
构造函数的执行过程
- 通过new关键字调用函数
- 将对象赋值给函数内的this
- 使用this 给新创建的对象增添属性和方法
- 返回数据
实例化: 是指 构造函数 创建对象的过程 就称之为 实例化;
实例: 由构造函数 创建出的对象 就是指 构造函数的一个实例;
每实例化一个对象,都可以访问构造函数中的数据,构造函数中的数据是共享的
原型: 在定义构造函数的时候 , 就会默认的创建一个 空的 '原型属性
简称为: 原型
原型 在构造函数调用时就会默认创建
使用原型的注意事项
使用对象访问属性的时候,如果在本身内找不到就会去原型中找,但是使用点语法进行属性赋值的时候,并不会去原型中进行查找
使用点语法赋值的时候,如果对象中不存在该属性,就会给该对象新增该属性,而不会去修改原型中的
__proto__属性:该属性是一个非标准的属性,调试程序时使用