Басня о наследовании в JavaScript (юмор)

в 8:45, , рубрики: inheritance, javascript, prototype, наследование, Программирование, прототип, Разработка веб-сайтов

Басня о наследовании в JavaScript (юмор) - 1

Доброго времени суток, друзья!

Дисклеймер: дальнейшее повествование носит юмористический. Все персонажи являются вымышленными, все совпадения случайны.

Наследование (биология) — передача генетической информации (генетических признаков) от одного поколения организмов к другому — Википедия

Наследование (программирование) — концепция объектно-ориентированного программирования, согласно которой абстрактный тип данных может наследовать данные и функциональность некоторого существующего типа, способствуя повторному использованию компонентов программного обеспечения — Википедия

Басня

В некотором царстве, в некотором государстве… короче, жили-были три воробья: воробей-дед, воробей-отец и воробей-сын. Были они, значит, воробьями, каждый имел две лапки и хвостик:

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

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js