Knowledge base
es
es
  • Base de conocimiento
  • Bash scripting
    • Echemos un vistazo
  • Jenkins
    • Echemos un vistazo
  • Kafka
    • Echemos un vistazo
  • Kubernetes / Docker
    • Echemos un vistazo
  • Node.js
    • Echemos un vistazo
    • Node binary executable
      • Evaluando dinámicamente el código
      • Precarga de módulos
      • Límite de pila de datos (Stack trace)
    • Depuración y diagnóstico
    • Enfoque práctico de javascript
      • Tipos de datos
      • Funciones
      • Herencia de prototipos
        • Funcional
        • Funciones de constructor
        • Constructor (Class-Syntax)
      • Closure scope
    • Paquetes y dependencias
      • Inicializando paquetes
      • Dependencias
      • Package scripts
    • Sistema de módulos
    • Flujo de control asíncrono
      • Callbacks
      • Promises
      • Async/await
  • OAuth 2.0 / OpenID Connect
    • Echemos un vistazo
    • OpenID Connect
    • OAuth 2.0
      • Mejores prácticas de cómo manejar tokens
  • OpenShift
    • Echemos un vistazo
  • OWASP
    • Echemos un vistazo
  • SAML 2.0
    • Echemos un vistazo
  • SSL / TLS
    • Echemos un vistazo
  • Terraform
    • Echemos un vistazo
Powered by GitBook
On this page

Was this helpful?

  1. Node.js
  2. Enfoque práctico de javascript
  3. Herencia de prototipos

Funcional

La herencia en JavaScript se logra con una cadena de prototipos.

Ejemplo:

const employee = {
  salary: function () {
    console.log(`Su salario es de $.12,000.00`);
  }
};
const salesperson = Object.create(employee, {
  sell: {
    value: function () {
      console.log(`Es vendido por ${this.name}`);
    }
  }
});
const smith = Object.create(salesperson, {
  name: {
    value: 'Smith Peterson'
  }
});

smith.sell(); // Es vendido por Smith Peterson
smith.salary(); // Su salario es de $.12,000.00
console.log(Object.getPrototypeOf(smith) === salesperson); // true
console.log(Object.getPrototypeOf(salesperson) === employee); // true

Describiendo la cadena de prototipos:

  • El prototipo de smith es salesperson.

  • El prototipo de salesperson es employee.

  • El prototipo de employee es Object.prototype.

Los pasos que realizó el runtime de javascript para smith.salary();

El segundo argumento de Object.create es un objeto opcional conocido como Descriptor de propiedades (Properties descriptor) y contiene claves que se convertirán en el nombre de la clave del objeto creado que describe las características de las propiedades de otro objeto.

Object.getOwnPropertyDescriptor es utilizado para obtener un descriptor en cualquier objeto:

node - p "Object.getOwnPropertyDescriptor(global, 'process')"
 {
     get: [Function: get],
     set: [Function: set],
     enumerable: false,
     configurable: true
 }

El descriptor puede utilizar un valor de una propiedad get/set.

Las propiedades que están asociadas con la metadata del objeto:

  • Writeable: Determina si la propiedad puede reasignarse.

  • Enumerable: Default false; determina si la propiedad se enumerará, en la propiedad iterador como Object.keys.

  • Configurable: Default false; establece si el descriptor en sí puede modificarse.

PreviousHerencia de prototiposNextFunciones de constructor

Last updated 3 years ago

Was this helpful?