@AlexNew22

Почему в миксин нельзя передать экземпляр класса?

Почему в миксин можно передать только объект, а экземпляр класса, который тоже является объектом, нельзя?
let Moves = {
    move() {
        console.log(`${this.name} move to home`)
    }
}

class Sounds {
    say() {
        console.log(`what the ${this.name} say`)
        console.log(this)
    }
}

class Animal {
    constructor(name) {
        this.name = name
    }
}

Object.assign(Animal.prototype, new Sounds(), Moves)
const animal = new Animal('fox')
animal.say()
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
Метод say лежит в прототипе экземпляра Sounds, а не в самом экземпляре.
Object.assign копирует только содержимое непосредственно объекта, не заглядывая в его прототип. Так мир устроен.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы