Показать сообщение отдельно
  #3 (permalink)  
Старый 15.05.2015, 21:12
Интересующийся
Отправить личное сообщение для sexbot Посмотреть профиль Найти все сообщения от sexbot
 
Регистрация: 09.05.2015
Сообщений: 27

function inherit(Child, Parent) {
  Child.prototype = Object.create(Parent.prototype);
  Child.prototype.constructor = Child;
  Child.prototype.parent = Parent;
}

// `super` is reserved word
function sup(obj, method) {
  var args = Array.prototype.slice.call(arguments, 2)
  return obj.parent.prototype[method].apply(obj, args);
}

function Animal(name, sound) {
  this.name = name;
  this.sound = sound;
}

Animal.prototype.say = function() {
  console.log('%s says %s', this.name, this.sound);
};

function Cat() {
  this.counter = 0;
  this.parent.call(this, "cat", "meow");
}

inherit(Cat, Animal);

Cat.prototype.say = function(){
  sup(this, "say");
  console.log("method called %s times", ++this.counter);
};

var cat = new Cat();
cat.say();
cat.say();
cat.say();


Я еще магии немного принес, только вот что-то мне не нравится моя функция `sup`
Ответить с цитированием