面向对象

100 阅读2分钟

「这是我参与2022首次更文挑战的第10天,活动详情查看:2022首次更文挑战」。

面向对象

面向对象不是技术,而是一种思维方式

面向对象: 注重结果

面向过程: 注重过程

面向对象的本质: 面向过程的封装 => 使用函数封装

好处: 代码复用,解决冗余

弊端: 全局变量污染(多人开发中,大家声明的全局函数名字一致,会导致覆盖的情况)

实际开发中,如何应用面向对象编程思维

拿到需求不要慌,先找百度一下有没有专业的对象可以帮你解决,有就可以直接那来CV

别人写好的对象:好处 :效率高 不好:维护不便

网上没有的就要自己写

自己写的对象: 好处 : 方便维护 不好:效率低

构造函数创建对象(new工作原理)

构造函数:

构造函数的作用与工厂函数一致,都是创建对象。但是构造函数更加简洁

使用new关键字调用一个函数

  1. 创建空对象
  2. 将this指向这个对象
  3. 对象赋值
  4. 返回对象 不要写return

1.png

原型对象

  • 原型对象是什么

    当声明一个函数的时候,编译器会自动帮你创建一个与之对应的对象,称之为原型对象

  • 原型对象作用

    解决构造函数内存资源浪费+全局变量污染

  • 如何访问

    构造函数.prototype

构造函数、原型对象、实例对象的关系

  • prototype

    属于构造函数,指向原型对象

    解决资源浪费+变量污染

  • __proto__

    属于实例对象指向原型对象

    可以让实例对象访问原型对象中的成员

  • constructor

    属于原型对象,指向构造函数

    可以让实例对象知道自己是被哪个构造函数创建的

原型使用注意点

  • 哪些属性可以放在原型中

    所有实例对象共有的成员

  • 对象访问原型的规则

    就近原则

    对象访问成员的时候,优先访问自身,如果自身没有才会访问原型的

  • 原型是可以覆盖的

    实例对象访问覆盖前的原型还是覆盖后的原型,取决于这个实例对象在什么时候创建

    覆盖前创建: 实例对象的原型就是覆盖前的原型

    覆盖后创建: 实例对象的原型就是覆盖后的原型

3.png

加油加油!!

努力学习!!