¿Cómo puedo hacer que un object henetworkinge dos objects en su prototipo?

Estoy tratando de hacer que un object henetworkinge de otros dos objects pero hacerlo así no funciona, ¿cómo puedo hacerlo funcionar?

function a() { }; a.prototype.iamA = function() { alert("a"); }; function b() { }; b.prototype.iamB = function() { alert("b"); }; function ab() { }; ab.prototype = new a(); ab.prototype = new b(); console.log(new ab()); 

Parece que el prototipo está anulado, ¿cómo puedo agregarlo, también he intentado agregarlo al prototipo pero tampoco funciona?

One Solution collect form web for “¿Cómo puedo hacer que un object henetworkinge dos objects en su prototipo?”

Use la extensión de object en lugar de la asignación, por ejemplo:

 function extend(obj, source) { for (var prop in source) { obj[prop] = source[prop]; } return obj; } 

entonces:

 ab.prototype = extend(new a(), new b()); (1) 

O puede optar por utilizar la function de extensión de subrayado.

 ab.prototype = _.extend({}, new a(), new b()); (2) 

Editar :

Estrictamente hablando, esto es mixin en lugar de multi-inheritance real, ya que (new ab instanceof b) === false en ambos (1) y (2).

Para get más información, eche un vistazo a esta reference: Sin inheritance múltiple .

Dicho esto, mixin es probablemente suficiente para ti. Resulta que las personas que piensan que necesitan inheritance generalmente solo necesitan la reutilización del código, no la construcción relacionada con la escritura. Esto es especialmente cierto para el lenguaje de tipado dynamic (o tipado de pato ) como JavaScript.

  • ¿Qué es la inheritance diferencial en JavaScript?
  • Class.prototype.method vs this.prototype.method
  • Mejor forma de acceder a miembros privados en Javascript
  • Herencia de prototipo Javascript y Object.create ()?
  • ¿Usar nuevo en un object anónimo con una propiedad prototipo?
  • Diferencia de Javascript entre MyClass.prototype = {} y MyClass.prototype.method
  • Extender la function del prototipo JavaScript
  • Problema con la sobreescritura del prototipo con el object en javascript
  • Cómo acceder al padre de un prototipo desde dentro de la function de un método
  • La diferencia entre un lenguaje basado en classs (como Java o Python) y un lenguaje basado en prototypes (como Javascript)?
  • Obtener browser.elemento en objects de página con niños
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.