CHALLENGE
const Flyable = {
fly() { return 'flying'; }
};
const Swimmable = {
swim() { return 'swimming'; }
};
function mixin(Base, ...mixins) {
mixins.forEach(mixin => Object.assign(Base.prototype, mixin));
return Base;
}
class Bird {}
class Fish {}
const FlyingFish = mixin(class extends Fish {}, Flyable, Swimmable);
const instance = new FlyingFish();
console.log(instance.swim());
console.log(instance.fly());
console.log(instance instanceof Fish);
What is the output?
Anonymous Quiz
23%
flying, swimming, false
48%
swimming, flying, true
21%
undefined, undefined, true
8%
swimming, flying, false
CHALLENGE
function createCounter() {
let count = 0;
return function(increment = 1) {
count += increment;
return count;
};
}
const counter1 = createCounter();
const counter2 = createCounter();
console.log(counter1());
console.log(counter1(5));
console.log(counter2(3));
console.log(counter1());
console.log(counter2());
❤5🤔2