javascript-面向对象


javascript-面向对象

1. 什么是对象:

a) 不知道收音机的内部原理却能够使用它

b) 对象是一个整体,是一个盒子,对外是封闭的,我们不需要知道它的内部细节

2. 什么是面向对象:

a) 在使用对象的时候,只关心它提供的外部功能,不关心它的内部细节;

b) 比如JQuery

3. 面向对象编程的特点(OOP):

a) 抽象:抓核心

b) 封装:封装细节,提供外部接口

c) 继承:在已有的对象之上,继承出新的对象

i. 多重继承 – 有多个父级

ii. 多态 – 父类和子类有相同的操作,但操作之间又不相同

4. 对象的组成:

a) 属性:就是变量,一个从属于某个对象的变量;

b) 方法:就是函数,一个从属于某个对象的函数;

c) 函数、方法、构造函数、事件处理函数其实都是一种东西;

javascript-面向对象

5. this的本质:

a) 说明方法属于哪个对象;

b) this在fn前面有new的时候会失效;

c) fn前面有new的时候,this会指向一个系统创建好的新的对象

6. 工厂方式:

a) 创建一个对象(原料)

b) 加属性、方法 (加工)

c) 返回对象 (出厂)

d) 缺点:

i. 没有new

ii. 每个对象都有一套自己的函数 ,就像每人都扛一台饮水机来上课似的,极其浪费资源;

7. 什么是prototype (原型):

a) 是一个demo;

b) 类似于css中的Class, 在JS中给一类对象加方法

c) Class 与 行间样式:

i. Class - 改变一类元素的样式;

ii. 行间样式 – 改变一个元素的样式; 优先级更高;

d) 原则的重要作用:扩展系统对象的功能;

8. 类与对象(实例):

a) 类: 模子 Array : 不具备实际的功能,只能用来构造对象

b) 对象: 小蛋糕 arr = new Array(); 真正有功能的东西,被类给构造出来的;

9. 从工厂方式到混合法:

a) 区别普通函数 和 构造函数,构造函数的首字母大写;

b) 每个对象的属性各不相同,所以在构造函数内部添加属性;

c) 每个方法所有对象都一样,所以到原型中添加;

10. 面向对象的选项卡:

a) 改写方法:

i. 所有的东西都在onload里;

ii. 将所有的函数嵌套都干掉;

iii. 不能有函数嵌套,可以有全局变量;

iv. onload -> 构造函数;

v. 全局变量 –> 对象属性;

vi. 全局方法 –> 对象方法;

11. this在面向对象中会出问题的两个地方:

a) 但凡被定时器调用的函数,它的this一定是window;

b) 被事件调用时;

12. Json方式的面向对象:

a) 命名空间:方便多部门合作;

13.继承:

a) 先执行父级的构造函数,然后再添加子类的属性;

14. JS中的继承:

a) 使用call()调用父级的构造函数; -> 构造函数伪装,继承父级的属性;

b) 通过原型继承父类的方法; -> 原型链,继承父级的方法;

15.Instanceof 判断对象是哪个类的实例

16.利用JS继承实现 限制范围的拖拽

javascript-面向对象

17. 系统对象:

a) 本地对象:

i. 是非静态对象;

ii. 使用时必须用new进行实例化;

iii. 如: Object, Function, Array, String, Boolean, Number, Date, RegExp, Error

b) 内置对象:

i. 是静态对象;

ii. 如 Math

c) 宿主对象:

i. 宿主: 生活、运行的环境; 随着运行环境的不同而有所变化;

ii. JS的宿主对象:由浏览器提供的对象 – DOM BOM;


分享到:


相關文章: