面向对象编程思想:
面向过程编程
解决问题的过程,按步骤进行,第一步做什么,第二步做什么,一步一步完成
面向对象编程
找具有解决问题功能的对象,调用其功能,完成任务。如果对象不存在,则创建对象。
面向对象与面向过程
- 面向过程就是亲力亲为,事无巨细,面面俱到,步步紧跟,有条不紊
- 面向对象就是找一个对象,指挥得结果
- 面向对象将执行者转变成指挥者
- 面向对象不是面向过程的替代,而是面向过程的封装
创建对象方式:
简单方式new Object
字面量方式
工厂函数
构造函数:
更优雅的工场函数-构造函数
解析构造函数代码的执行
下面是具体的伪代码:
构造函数示例
面向对象小案例: 点击按钮改变区块颜色
检查对象类型:
instanceof
let arr = [] arr instanceof Array =>true
hasOwnProperty()
Object的hasOwnProperty()方法返回一个布尔值,判断对象是否包含特定的自身(非继承)属性。
原型prototype:
构造函数、实例、引用变量、对象名,对象概念区分
更好的解决方案: prototype原型对象
Javascript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象(原型对象prototype)。
这个原型对象的所有属性和方法,都会被构造函数的实例访问(继承)。
这也就意味着,我们可以把所有对象实例需要共享的属性和方法直接定义在 prototype 对象上。
构造函数、实例、原型三者之间的关系
属性成员的搜索原则
实例对象读写原型对象成员
更简单的原型语法
原生对象的原型
练习-选项卡
原型链:
类class :
一切即对象:
函数对象
创建方式
Function
普通对象
实例对象
原型对象