wiki/content/20201113091424-javascript_prototypes.md

39 lines
917 B
Markdown
Raw Normal View History

2024-05-06 20:40:05 +00:00
---
2024-10-29 18:27:12 +00:00
date: 2020-11-13
2024-05-06 20:40:05 +00:00
id: fd03be0e-a4c0-421f-9dd7-1bddc9dece65
title: JavaScript Prototypes
---
# Description
A prototype can be seen as an [object](20200826201605-objects) another
object extends.
# Syntax
``` javascript
let protoRabbit = {
speak(line) {
console.log(`The ${this.type} rabbit says '${line}'`); // : The killer rabbit says 'SKREEEE!'
},
};
let killerRabbit = Object.create(protoRabbit);
killerRabbit.type = "killer";
killerRabbit.speak("SKREEEE!");
```
# Object.prototype
Most objects in JavaScript eventually extend `Object.prototype` through
parent prototype objects or directly, which provides a bunch of default
methods[^1].
``` javascript
console.log(Object.getPrototypeOf({}) == Object.prototype); // true
console.log(Object.getPrototypeOf(Object.prototype)); // null
```
# Footnotes
[^1]: <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object>