# JS高阶-DAY02
# 今日目标
1. 面向对象思想---10% 理解
2. 原型原型链----65% 可以5分钟内 手绘原型图
3. this指向---25% 能够分析清楚
# 1. 面向对象与面向过程
面向对象与面向过程是两种编程的思想
1. 面向过程(POP):按照流程步骤,一步一步的走,实现功能,每一步都是亲力亲为
2. 面向对象(OOP):从全局出发,把功能都封装在对象中,然后要做什么找什么对象,调用对象的方法
# 2. 类和构造函数的关系
在ES5中 类===构造函数
类 class 构造函数constructor
# 3. 自己写构造函数&new的过程
概念:在js中,构造函数可以成为类,
js内置的构造函数:Number,String...Error,Math ,Date
他们的作用:造出各种类型的数据。造:new--实例对象
## 3.1 构造函数的特点:
1. 首字母大写
2. 属性和方法都挂在this上
3. 没有返回值
4. 使用new调用
## 3.2 new的过程发生了什么
1. 创建一个空的对象
2. 让this指向空对象
3. 执行构造函数里面的代码
4. 自动返回this
# 4.原型与原型链
## 4.1原型
1. 每个构造函数都有一个属性,prototype(显式原型),它的值是一个对象,只要往这个对象上添加方法,,这些方法都会被new出来的实例对象所共享
2. 实例对象都有一个属性`__proto__`(隐式原型),指向的是构造函数的显式原型
3. 原型堆向里面,有一个属性constructor,指向构造函数自己本身
## 4.2 原型链
1. 显式原型prototype本身也是一个实例对象,也有自己的构造函数,他的构造函数是Object,显式原型prototype有属性`__proto__`,指向他的构造函数--Object的显式原型prototype
2. Object的prototype也是实例对象,也有`__proto__`,指向null
3. Object的prototype上有一个属性constructor,指向构造函数自己本身
## 4.3 原型与原型链的作用
原型的作用:添加共享方法
原型链的作用:实例对象查找方法,先找自己,自己没有,就沿着原型链找,找到就可以使用,一直找到Object为止,找不到就报错
|