Bird() is a function, that is also at the same time, a object constructor.

After let blueBird = new Bird() then the real object has been created, which is blueBird

So right now, object blueBird is:

let blueBird = {
name: "Albert",
color: "blue",
numLegs:"2"
}

edit:
4. then the newly created object blueBird is an instance of object constructor Bird() correct?

can one object constructor has multiple instances? they can right? every time you pass in arguments into object constructors then more and more instances (newly created objects) are gonna come out right?

The point of it is if you want to create a load of objects that have the same properties. So yup, the function lets you create multiple objects of that type of object. It is just a regular function, there is no difference to any other function except that you have to use new when you call it (otherwise it won’t return anything, and you’ll cause problems for yourself)