2010-09-24 18 views
7

En el siguiente ejemplo, ¿hay alguna manera de construir el objeto de modo que "b" tenga una propiedad a1, inicializada a "2"?Javascript: pasar los argumentos del constructor por la cadena del prototipo. ¿Hay alguna manera?

function A(a1) { 
    this.a1 = a1; 
} 

function B(b1, a1) { 
    this.b1 = b1; 
} 

B.prototype = new A; 

var b = new B('1', '2'); 

Básicamente, estoy tratando de duplicar lo que se conoce como “una llamada al constructor base” en un lenguaje orientado a objetos tradicionales (como C#).

Respuesta

6

como esta?

function B(b1, a1) { 
    A.call(this, a1); 
    this.b1 = b1; 
} 
+1

Eso funciona. Llamará al constructor de A dos veces (una vez debido a la línea: B.prototype = new A;). Ahora me pregunto si necesito el "B.prototype = new A"; línea en absoluto, ya que nunca uso instanceof. Gracias. – zod

Cuestiones relacionadas