2013-12-14 5 views
0

Я использую этот тип кода для наследования. Проблема в том, что я получаю ошибку при настройке prototype из B, потому что new A() пытается получить доступ params.param и params is undefined при настройке B.prototype. Как с этим бороться? Или я должен использовать другой стиль для моделирования наследования в js?JavaScript - параметры конструктора и наследование прототипа

function A(params) { 
    this.param = params.param; // this will throw error when set up B prototype 
} 

function B(params) { 
    A.call(this, params); // this is ok 
} 

B.prototype = new A(); // this is bad, A need some parameters 
+1

Возможные DUP из http://stackoverflow.com/questions/7533473/javascript-inheritance-when-constructor-has-arguments и http://stackoverflow.com/questions/7785955/inherit-parent-constructor -аргументы и http://stackoverflow.com/questions/3601932/how-do-i-call-an-inherited-javascript-constructor-with-parameters – jfriend00

ответ

0

Вы можете сделать этот путь и не получите проблемы.

var EmptyFunc = function() {}; 
EmptyFunc.prototype = A.prototype; 

B.prototype = new EmptyFunc; 
Смежные вопросы