JavaScript-面向对象
编程思想
面向过程
面向过程就是分析出解决问题所需要的步骤,用函数一步步实现,使用的时候一个个依次调用
例子:蛋炒饭
优点:性能较高
缺点:没有面向对象灵活,可复用
面向对象
OOP
面向对象就是把事务分解成一个个对象,由对象之间分工与合作
例子:盖浇饭
优点:灵活,可复用,容易维护和开发,适合多人合作的大项目
特性:封装,多态,继承
构造函数
JS通过构造函数实现面向对象的封装特性
实例创建的对象彼此独立,互不影响
缺点:浪费内存
不同的实例对象,他们的函数占用不同的内存
1 | function Star(name){ |
原型
原型对象
prototype
每一个构造函数都有一个prototype
通过原型分配的函数是所有对象所共享的
this指向实例化对象
把公共的函数写到原型对象里去就可以节约内存
constructor属性
每个原型对象都有一个constructor属性 (构造函数)
指向该原型对象的构造函数
应用场景:指向该原型对象的构造函数
对象原型
每个对象都会有一个属性 [[proto]]
原型继承
1 | function Person(){ |
原型链
基于原型对象的继承使得不同构造函数的原型对象关联在一起, 并且这种关联的关系是-种链状的结构,我们将原型对象的链状结构关系称为原型链
实质就是一个查找规则 ,先找对象自身,依次往上找
所有的对象里面都有对象原型,指向原型对象
所有的原型对象里面都有constructor,指向创造该原型对象的构造函数
1 | console.log(Array instanceof Object) |
- Title: JavaScript-面向对象
- Author: WGenji
- Created at : 2024-08-26 13:51:51
- Updated at : 2024-08-26 13:51:51
- Link: https://redefine.ohevan.com/2024/08/26/2.javascript/js进阶/3.深入面向对象/
- License: This work is licensed under CC BY-NC-SA 4.0.