Доброго времени суток, друзья!
Дисклеймер: дальнейшее повествование носит юмористический. Все персонажи являются вымышленными, все совпадения случайны.
Наследование (биология) — передача генетической информации (генетических признаков) от одного поколения организмов к другому — Википедия
Наследование (программирование) — концепция объектно-ориентированного программирования, согласно которой абстрактный тип данных может наследовать данные и функциональность некоторого существующего типа, способствуя повторному использованию компонентов программного обеспечения — Википедия
Басня
В некотором царстве, в некотором государстве… короче, жили-были три воробья: воробей-дед, воробей-отец и воробей-сын. Были они, значит, воробьями, каждый имел две лапки и хвостик:
let SparrowGrandfather = function() {}
SparrowGrandfather.prototype = {
species: 'Sparrow',
paws: 2,
tail: true
}
let SparrowFather = function() {}
SparrowFather.prototype = Object.create(SparrowGrandfather.prototype)
let SparrowSon = function() {}
SparrowSon.prototype = Object.create(SparrowFather.prototype)
let grandfather = new SparrowGrandfather()
let father = new SparrowFather()
let son = new SparrowSon()
console.log(grandfather.species, father.species, son.species) // Sparrow Sparrow Sparrow
console.log(grandfather.paws, father.paws, son.paws) // 2 2 2
console.log(grandfather.tail, father.tail, son.tail) // true true true
Вдруг, ни с того ни с сего воробей-дед решил отрастить себе третью лапку. Не спрашивайте зачем, он и сам толком не понимал. Вероятно, просто выжил из ума на старости лет. И хотите — верьте, хотите — нет, ему это удалось. Но вот незадача: третья лапка выросла не только у него, но также у воробья-отца и воробья-сына.
SparrowGrandfather.prototype.paws++
console.log(grandfather.paws, father.paws, son.paws) // 3 3 3
Вслед за полоумным воробьем-дедом и воробей-отец, всю свою жизнь страстно завидовавший большим хищным птицам, их высокому полету и царственному величию, решил стать орлом. Решил и стал. Опять же не спрашивайте, как ему это удалось. Это басня, в конце концов, а не жизнь: в басне все возможно. И все бы ничего, но в орла также обратился и воробей-сын. Но не воробей-дед, тот так и остался трехлапым воробьем. Однако поскольку он находился в кругосветном путешествии, ни орел-отец, ни орел-сын об этом не знали.
SparrowFather.prototype.species = 'Eagle'
console.log(grandfather.species, father.species, son.species) // Sparrow Eagle Eagle
И поселилась в сердце орла-сына злоба лютая. И решил он воробью-деду и орлу-отцу отомстить за все обиды и унижения. Думал, думал, как бы ему это получше провернуть и, наконец, придумал: «А откушу-ка я себе хвост по самое не хочу». Взял и откусил. Глядь на орла-отца, а у того хвост на месте. К этому времени и воробей-дед подоспел, и тоже с хвостом. Увидел воробей-дед бесхвостого орла-сына и чуть не отбросил… третью лапку.
SparrowSon.prototype.tail = false
console.log(grandfather.tail, father.tail, son.tail) // true true false
Идею встретил на просторах Интернета.
Благодарю за внимание. Хорошего дня!
Автор: Harry Heman