Inheritance & Prototypes — Series 2

Preview — 3 of 10 questions

What is logged?

javascript
class Animal {
  speak() {
    return '...';
  }
}
class Dog extends Animal {}

const d = new Dog();

console.log(Object.getPrototypeOf(d) === Dog.prototype);
console.log(Object.getPrototypeOf(Dog.prototype) === Animal.prototype);
Afalse, false
Btrue, true
Ctrue, false
Dfalse, true

What is logged?

javascript
class Widget {
  render() {
    return 'base render';
  }
}

const w = new Widget();
w.render = () => 'overridden render';

console.log(w.render());
console.log(Widget.prototype.render());
A"base render", "base render"
B"overridden render", "overridden render"
C"overridden render", "base render"
DTypeError: Widget.prototype.render is not a function

What is logged?

javascript
class Logger {
  log(msg) {
    return `[LOG] ${msg}`;
  }
}

class TimestampLogger extends Logger {
  log(msg) {
    const base = super.log(msg);
    return `2024-01-01 ${base}`;
  }
}

const logger = new TimestampLogger();
console.log(logger.log('Server started'));
A"2024-01-01 [LOG] Server started"
B"[LOG] Server started"
C"2024-01-01 Server started"
DTypeError: super.log is not a function

Sign up free to play

Answer all 10 questions (7 more), see explanations for every answer, and track your score.