面向对象
面向对象也叫OOP (Object Oriented Programming),它不是一个语法,它是一种编程思想和架构.对象的含义是指具体的某一个事物,即在现实生活中能够看得见摸得着的事物。在面向对象程序设计中,对象所指的是计算机系统中的某一个成分。在面向对象程序设计中,对象包含两个含义,其中一个是数据,另外一个是动作。对象则是数据和动作的结合体。对象不仅能够进行操作,同时还能够及时记录下操作结果。
1.面向过程(POP)
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步步实现,使用时在一个个调用函数就行了
在javascript中。
2.面向对象(OPP)
面向对象就是把事务分解成一个个对象,然后由对象之间分工合作完成。面向对象是以对象功能来划分问题的,而不是步骤!
面向对象的特性
1.封装性:把重复复用的代码块分装起来。
2.继承性:例如有对象father和对象son,对象son就是可以继承对象father的属性和方法。
3.多态性:同一个对象在不同是时刻体现出不同的状态:例如一个拖把,除了可以拖地之外,拖把棍可以打不听话的小孩子呀
举个例子说明
比方说我们现在需要吃饭,那么按照面向过程的思想来说就是:
1.煮饭
2.洗菜
3.切菜
4.炒菜
5.盛饭
6.吃饭
而面向对象的思想就很简单:
1.找个饭馆
2.下单
3.吃饭
面向对象
找到一个"饭馆",它能够完成我的需求, “生产"一顿饭,然后我们通过这个"饭馆”,得到一顿饭
如果有这个"饭馆",那我们直接使用;如果没有,那就自己开一个"饭馆"
以轮播图为例
找一个 ‘机器’ 这个机器能生产产品, 这个产品就是轮播图
如果有这个机器, 我们直接通过这个机器去得到轮播图, 如果没有这个机器, 我们需要自己创造一个机器
面向过程 => 脸 朝着 过程; 编程时注重过程, 一切功能都是一步一步来
面向对象 => 脸 朝着 对象; 编程时注重对象, 一切功能都是创造出来那个对象
<script>
* 轮播图
//面向过程的思想
创建第一个轮播图
1. const banner = xxx
2. const imgBox = xxx
3. const focus = xxx
4. const index = xxx
5. function copyEle () {
操作 imgBox}
6. function setFocus () {
操作 focus}
7. function autoPlay () {
操作 imgBox 和 index}
//创建第二个 轮播图
1. const banner2 = xxx
2. const imgBox2 = xxx
3. const focus2 = xxx
4. const index2 = xxx
5. function copyEle2 () {
操作 imgBox2}
6. function setFocus2 () {
操作 focus2}
7. function autoPlay2 () {
操作 imgBox2 和 index2}
//面向对象的思想
b1 = {
banner: xxx,
imgBox = xxx,
focus = xxx,
index = xxx,
copyEle () {
操作 this 的 imgBox},
setFocus () {
操作 this 的 focus},
autoPlay () {
操作 this 的 imgBox 和 this 的 index}
}
b2 = {
banner: yyy,
imgBox = yyy,
focus = yyy,
index = yyy,
copyEle () {
操作 this 的 imgBox},
setFocus () {
操作 this 的 focus},
autoPlay () {
操作 this 的 imgBox 和 this 的 index}
}
*对象的 属性值不相同, 但是 方法 相似但不同
*机器的核心 能够批量生产
*找到一个能批量生产对象的机器
*并且是合理生产
</script>