I recently wrote an article called “Master the JavaScript Interview: What’s the Difference Between Class and Prototypal Inheritance?” Afterwards, I got several questions asking for more information…
I've read a lot of posts in the past on this subject; this includes some by massively influential developers such as John Resig. I don't think the popular
Prototypal inheritance is arguably the least understood aspect of JavaScript. Well the good news is that if you understand how CSS works, you can also understand how JavaScript prototypes work.
In OpenAPI version 3, you do this with the allOf keyword:
components:
schemas:
BasicErrorModel:
type: object
required:
- message
- code
properties:
message:
type: string
code:
type: integer
minimum: 100
maximum: 600
ExtendedErrorModel:
allOf: # Combines the BasicErrorModel and the inline model
- $ref: '#/components/schemas/BasicErrorModel'
- type: object
required:
- rootCause
properties:
rootCause:
type: string
In the example above, the ExtendedErrorModel schema includes its own properties and properties inherited from BasicErrorModel
N. Schärli, S. Ducasse, O. Nierstrasz, and A. Black. ECOOP 2003 -- Object-Oriented Programming, volume 2743/2003 of Lecture Notes in Computer Science, page 327--339. OGI School of Science & Engineering , Oregon Health and Science University, Springer, (November 2003)
E. Tempero, J. Noble, and H. Melton. ECOOP 2008 European Conf. on Object-Oriented Programming, volume 5142 of Lecture Notes in Computer Science, page 667--691. Springer Berlin / Heidelberg, (2008)