Вы никогда не создаете экземпляр объекта Page
. Все, что вы делаете, это возвращаете обычный объектный литерал при вызове
Page = function(url) {
...
return { something: something_I_defined_above }
...
}
var p = new Page();
Этот литерал не наследуется от Page.prototype
. Есть несколько способов решить эту проблему, в основном в зависимости от того, как вы хотите структурировать свое приложение.
Например, вместо того, чтобы Page
наследовать от Link
(имеет ли это смысл?), Вы можете вернуть объект, который наследуется от Link
:
Page = function(url) {
...
var Constr = function(){};
Constr.prototype = new Link();
var instance = new Constr();
instance.something = something_I_defined_above;
return instance;
...
}
var p = new Page();
Я на самом деле не уверен, что будет лучшим подходом здесь. Это действительно зависит от того, что вы хотите. Мое предложение не сделало бы его слишком сложным.