面向对象程序设计(OOP:Object Oriented Programming)是一种编程思想,它是以对象数据类型为导向的一种编程思想。
JS/JAVA/PHP/C#/Ruby/Python/C++..
面向过程是以过程为中心的编程思想
C
面向过程
开始游戏
红方先动
重新绘制图盘
判断胜负
黑方再动
重新绘制图盘
判断胜负
重复
面向对象
做一个棋盘的控制系统
用户走棋是一个系统
判断胜负是另一个系统
面向对象的特点:
封装
继承
多态
[封装]
把实现一个功能的 JS 代码进行封装,主要目的,低耦合高内聚
[多态]
重载:方法名相同,参数的个数或者类型不同,此时名字相同的方法叫做方法的重载(后台语言中的重载),JS 中没有重载,如果需要重载,可以通过检测参数来实现模拟重载
重写:子类重写父类的方法
[继承]
子类继承父类的属性和方法
原型继承
call 继承
寄生组合继承
ES6 class 类实现继承
面向对象
面向对象编程,需要掌握 对象、类、实例 的概念
对象:万物皆对象
类:对象的具体细分
实例:类中的一个具体事物(拿出类别中的具体一个实例进行研究,那么当前类别下的其他实例也具备这些特点和特征)
整个 JS 就是基于面向对象设计和开发出来的语言,我们学习和实战的时候也要按照面向对象的思想区体会和理解
内置类
Object:对象类(基类)
数据类型 Number、String、Boolean、Null、Undefined、Array、RegExp、Function…
元素集合 HTMLCollection
事件目标 EventTarget
Node
Element
HTMLElement
HTMLBodyElement
HTMLDivElement
…每一个 HTML 标签都有一个自己所属的类
…
…
WindowProperties
- Window…
节点集合 NodeList
…