Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="herencia" />
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
var Persona = function(nombre, apellido1) {
  this.nombre = nombre;
  this.apellido1 = apellido1;
};
Object.defineProperties(Persona.prototype, {  
  nombreCompleto: {
    get: function() { 
      return this.nombre + " " + this.apellido1;
    },
    enumerable: true
  }
});
Persona.prototype.saluda = function(persona) {  
  if (persona instanceof Persona) {
    return "Hola " + persona.nombreCompleto;
  } else {
    return "Hola colega";
  }
};
var Empleado = function(nombre, apellido1, cargo) {
  Persona.call(this, nombre, apellido1);  
  this.cargo = cargo;
};
Empleado.prototype = Object.create(Persona.prototype, { 
  saluda: {   // sobreescribimos los métodos que queremos
    value: function(persona) {
      if (persona instanceof Persona) {
        return Persona.prototype.saluda.call(this) + " (desde un empleado)";  
      } else {
        return "Hola trabajador";
      }
    },
    writable: false,  
    enumerable: true
  },
  nombreCompleto: {
    get: function() { 
      var desc = Object.getOwnPropertyDescriptor(Persona.prototype, "nombreCompleto");  
      return desc.get.call(this) + ", " + this.cargo; 
    },
    enumerable: true
  }
});
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
aitormedran0pro
0viewers