наследование прототипа (javascript) - PullRequest
1 голос
/ 12 июля 2009

так что я наконец понял прототип и как его использовать. Я уверен, что все еще пытаюсь решить эту проблему как проблему наследования Java, поэтому, если есть более прототипный способ, сообщите мне об этом.

Если B наследует A, я хочу, чтобы конструктор B сначала выполнил конструктор A. Это важно для настройки локальных переменных B. Сначала я думал сделать что-то вроде

function B()
{
    B.prototype.constructor();
}
B.prototype = new A();

Это, конечно, не работает должным образом, так как это по сути то же самое, что сказать

function B()
{
    new A();
}

Есть ли способ расширить конструктор Java-способом? Есть ли лучший способ сделать это?

{РЕДАКТИРОВАТЬ} Я понял, что проблема в том, что я пытался получить доступ к закрытым переменным. Я предполагаю, что частные переменные не передаются из прототипа?

Ответы [ 2 ]

2 голосов
/ 12 июля 2009

Когда вы копируете объект A в прототип B, вы вызываете конструктор A:

B.prototype = new A();

Чтобы настроить локальные переменные А через аргументы конструктора, вы можете сделать это:

B.prototype = new A(arguments, here);

Не уверен, что это ответ на ваш вопрос.

0 голосов
/ 12 июля 2009

Вы можете использовать любую инфраструктуру Ajax, которая поддерживает эмуляцию классов, они отлично справляются с классами и наследованием в javascript. Также взгляните на JS.Class .

...