Я хочу использовать очень простое наследование в Javascript без каких-либо библиотек (jQuery, Prototype и т. Д.), И я забываю, как это сделать.
Я знаю, как создать простое не наследуемоеобъект:
function Foo(x)
{
this.x = x;
}
Foo.prototype = {
inc: function() { return this.x++; }
}
, который я затем могу использовать следующим образом:
js>f1=new Foo(0)
[object Object]
js>f1.inc()
0
js>f1.inc()
1
js>f1.inc()
2
Но как бы добавить подкласс с одним дополнительным методом, который наследует метод Foo "inc", не меняякласс Foo?
function Bar(x)
{
this.x = x;
}
Bar.prototype = new Foo();
Bar.prototype.pow = function(y) { return this.x+"^"+y+"="+Math.pow(this.x,y); }
Это кажется правильным, за исключением этой странности с конструктором;Мне нужно вызвать конструктор Foo один раз, чтобы создать прототип Bar, и когда вызывается конструктор Bar, кажется, что нет способа вызвать конструктор Foo.
Есть предложения?