Почему это говорит «Animal» вместо «kitty»?Попытка понять наследование в JavaScript - что здесь происходит?
// create base class Animal
function Animal(animalType) {
this.type = animalType;
this.sayType = function() {
alert(this.type);
};
}
// create derived class Cat
function Cat(myName) {
Animal.call(this, "cat"); // cat calls the Animal base class constructor
this.name = myName;
this.sayName = function() {
alert(this.name);
};
}
Cat.prototype = Object.create(Animal); // set Cat's prototype to Animal
// instantiate a new instance of Cat
var cat = new Cat("kitty");
cat.sayName();
cat.name = "lol";
cat.sayName();
http://jsfiddle.net/dgcoffman/MguUA/5/
ваши '' функции sayType' и sayName' är фактически используют прототипное наследование, потому что они не на прототипе! Вы создали их как локальные свойства экземпляра. – Alnitak