function Bird(name) { this.name = name; //own property } let duck = new Bird("Donald"); Bird.prototype = { numLegs: 2, eat: function() { console.log("nom nom nom"); }, describe: function() { console.log("My name is " + this.name); } }; console.log(duck.constructor === Bird); // true console.log(duck.constructor === Object) // false console.log(duck instanceof Bird) //false


при таком коде возвращается true, false, false
На freecodecamp:
There is one crucial side effect of manually setting the prototype to a new object. It erases the constructor property! This property can be used to check which constructor function created the instance, but since the property has been overwritten, it now gives false results:
duck.constructor === Bird; duck.constructor === Object; duck instanceof Bird;
In order, these expressions would evaluate to false, true, and true.
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/object-oriented-programming/remember-to-set-the-constructor-property-when-changing-the-prototype
Подразумевался вышеидущий другой код? На самом уроке он не приводился, взял предыдущих уроков