「这是我参与2022首次更文挑战的第10天,活动详情查看:2022首次更文挑战」。
面向对象
面向对象不是技术,而是一种思维方式
面向对象: 注重结果
面向过程: 注重过程
面向对象的本质: 面向过程的封装 => 使用函数封装
好处: 代码复用,解决冗余
弊端: 全局变量污染(多人开发中,大家声明的全局函数名字一致,会导致覆盖的情况)
实际开发中,如何应用面向对象编程思维
拿到需求不要慌,先找百度一下有没有专业的对象可以帮你解决,有就可以直接那来CV
别人写好的对象:好处 :效率高 不好:维护不便
网上没有的就要自己写
自己写的对象: 好处 : 方便维护 不好:效率低
构造函数创建对象(new工作原理)
构造函数:
构造函数的作用与工厂函数一致,都是创建对象。但是构造函数更加简洁
使用new关键字调用一个函数
- 创建空对象
- 将this指向这个对象
- 对象赋值
- 返回对象 不要写return
原型对象
-
原型对象是什么
当声明一个函数的时候,编译器会自动帮你创建一个与之对应的对象,称之为原型对象
-
原型对象作用
解决构造函数内存资源浪费+全局变量污染
-
如何访问
构造函数.prototype
构造函数、原型对象、实例对象的关系
-
prototype属于构造函数,指向原型对象
解决资源浪费+变量污染
-
__proto__属于实例对象指向原型对象
可以让实例对象访问原型对象中的成员
-
constructor属于原型对象,指向构造函数
可以让实例对象知道自己是被哪个构造函数创建的
原型使用注意点
-
哪些属性可以放在原型中
所有实例对象共有的成员
-
对象访问原型的规则
就近原则
对象访问成员的时候,优先访问自身,如果自身没有才会访问原型的
-
原型是可以覆盖的
实例对象访问覆盖前的原型还是覆盖后的原型,取决于这个实例对象在什么时候创建
覆盖前创建: 实例对象的原型就是覆盖前的原型
覆盖后创建: 实例对象的原型就是覆盖后的原型
加油加油!!
努力学习!!