What will be output of following code:
function User(name) {
this.name = name;
}
let user1 = new User('John');
console.log(user1.name); // ?
console.log(user1.constructor === User); // ?
User.prototype = {};
let user2 = new user1.constructor('Pete');
console.log( user2.name ); // ?
console.log(user12constructor === User) // ?Output will be:
'John'
true
'Pete'
falseuser1.name:
user1 is created with the name 'John'.'John'user1.constructor === User:
constructor property points to the constructor function that created it.trueUser.prototype = {};:
User to a new, empty object.user1.constructor('Pete'):
user1.constructor still points to the original User function.user2 is created with the name 'Pete'.user2.name: 'Pete'user2.constructor === User:
User have constructor set to Object, because the new prototype is an empty object {} which defaults to Object.false