planetproto
Version:
A Workshop for understanding JavaScript prototypes
55 lines (41 loc) • 1.5 kB
Markdown
El objeto \_\_proto\_\_
------------------
Para entender las cadenas de prototipos, no hay nada más simple que la propiedad
`__proto__`. Desgraciadamente `__proto__` todavía no es parte de la interfaz
estándar de JavaScript, por lo menos no hasta ES6. Así que probablemente no
deberías usarlo en el mundo real. No obstante, ayuda mucho a explicar los
prototipos de una forma sencilla.
```js
// creémos un objeto alien
var alien = {
kind: 'alien'
};
// y un objeto robot
var robot = {
kind: 'robot'
};
// y un objeto llamado 'zippy'
var zippy = {};
// asignamos alien como el prototipo de zippy
zippy.__proto__ = alien;
// zippy ahora está vinculado a alien
// 'hereda' las propiedades de alien
console.log(zippy.kind); //=> 'alien'
// asignamos robot como el prototipo de zippy
zippy.__proto__ = robot;
// y ahora zippy está vinculado a robot
console.log(zippy.kind); //=> 'robot'
```
Como puedes ver, la propiedad `__proto__` es bastante clara y fácil de usar.
Incluso si no deberíamos usar `__proto__` en producción, creo que estos ejemplos
nos dan una buena base para entender la modelo de objetos de JavaScript.
Puedes comprobar si un objeto es el prototipo de otro objeto así:
```js
console.log(alien.isPrototypeOf(zippy));
//=> true
```
Desafío
-------
Un archivo llamado `020.js` se ha creado automáticamente en el directorio
actual. Este archivo contiene el 'boilerplate' con las instrucciones y los
lugares donde añadir tu código debidamente señalados.