В данном цикле видеороликов я буду учить JavaScript'у с полного нуля, хотя иметь хоть какой то программерский бэкграунд будет полезно. Конкретно в этом ролике я расскажу всю необходимую информацию про прототипное наследование в JS. Покажу как работать с полями _proto_ у объектов и prototype у функций-конструкторов. Приведу много примеров показывающие принципы наследования, нюансы и ловушки данной темы.
Домашка
1. Что выведется?
const animal = {
jumps: null,
}
const rabbit = {
__proto__: animal,
jumps: true,
}
console.log(rabbit.jumps) // ? (1)
delete rabbit.jumps
console.log(rabbit.jumps) // ? (2)
delete animal.jumps
console.log(rabbit.jumps) // ? (3)
2. Есть два хомяка. Ест один - наедаются оба. Почему? Исправить
const hamster = {
stomach: [],
eat(food) {
this.stomach.push(food)
},
}
const speedy = {
__proto__: hamster
}
const lazy = {
__proto__: hamster
}
// Этот хомяк нашёл еду
speedy.eat('apple')
console.log(speedy.stomach) // ['apple']
// У этого хомяка тоже есть еда
console.log(lazy.stomach) // ['apple']
3. Переписать задачку (решение) про хомяков с использованием конструкторов и прототипов
4*. Написать функцию отложенного вызова