What would be the output of following code:
function Rabbit() {}
Rabbit.prototype = {
eats: true
};
let rabbit1 = new Rabbit();
console.log(rabbit1.eats); // ?
Rabbit.prototype = {
eats: false
};
cont rabbit2 = new Rabbit();
console( rabbit1.eats ); // ?
console( rabbit2.eats ); // ?
The output will be:
true
true
false
rabbit1.eats
logs true
because rabbit1
is created when Rabbit.prototype
has eats
set to true
.rabbit1.eats
logs true
again because reassigning Rabbit.prototype
creates a new prototype object but does not affect existing instances.rabbit2.eats
logs false
because rabbit2
is created after Rabbit.prototype
is reassigned to a new object with eats
set to false
.