www.cyberguru.ru/web/html/javascript-introduction-.....
//Конструктор родительского класса
function Animal(name)
{
this.name = name;
}
Animal.prototype.speak = function()
{
alert(this.name + " says:");
}
//Конструктор унаследованного класса "Dog"
function Dog(name)
{
Animal.call(this, name);
}
Dog.prototype.speak = function()
{
Animal.prototype.speak.call(this);
alert("woof");
}
//Конструктор унаследованного класса "Cat"
function Cat(name)
{
Animal.call(this, name);
}
Cat.prototype.speak = function()
{
Animal.prototype.speak.call(this);
alert("miaow");
}
..
Если вызовем метод speak задан в прототипе, а использовать мы его можем как от собаки, так и от кошки. Получим действия прототипа и затем переопределенное исполнение метода для каждого наследуемого элемента.
var d = new Dog("Fido"); //Создает экземпляр Dog
d.speak(); //Вызывает функцию speak() класса Dog
var c = new Cat("Lucy"); //Создает экземпляр Cat
c.speak(); //Вызывает функцию speak() класса Cat
Будет "Fido says: woof" и "Lucy says: meow"