使用JavaScript进行面向对象开发 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

原型

上一节提到了仅仅通过构造函数创建实例,他们的成员并不共用,很明显这不是一个好的实现方法。

这一节我们向你隆重的介绍prototype这个概念,它便是原型。任何类型都会有属于自己的原型,并且原型上定义的成员,可以在每个实例中引用,并且是共用的。我们可以先看看右边示例的运行结果。


结果很明显,这次两个不同实例的startWork是相同的了,这意味着不同实例间共用了该方法。

那么在设计JavaScript面向对象类型的时候,我们一般遵循以下规则:

  1. 因为实例不同而不同的内容,用this关键字声明
  2. 无论实例怎样内容完全相同的成员,定义在prototype上
利用原型,再定义一个endWork的方法试试。