2010-09-24 9 views
7

W poniższym przykładzie istnieje sposób na skonstruowanie obiektu takiego, że "b" ma właściwość a1, zainicjowaną na "2"?Javascript: przekazywanie argumentów konstruktora w dół łańcucha prototypów. Czy istnieje sposób?

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

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

B.prototype = new A; 

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

jestem zasadniczo próbuje powielać tego, co będzie znany jako „wywołanie konstruktora base” w tradycyjnym języka zorientowanego obiektowo (takich jak C#).

Odpowiedz

6

Podoba Ci się to?

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

To działa. Będzie wywoływał konstruktor A dwukrotnie (raz z powodu linii: B.prototype = new A;). Zastanawiam się teraz, czy potrzebuję "B.prototype = new A;" w ogóle, ponieważ nigdy nie używam instanceof. Dzięki. – zod

Powiązane problemy