When you call new Object
or even just instantiate an object with {}
, you
are creating an object that uses the Object
prototype. This means it
inherits from Object.prototype
.
You can deliberately create an object with no properties by making sure that
it does not inherit Object.prototype
.
> const propertylessObject = Object.create(null);
{}
> propertylessObject.__proto__
undefined
Unlike most objects that we encounter as we write JavaScript, this object we
created with Object.create(null)
has no properties including no
__proto__
.
See Object.create and Object.prototype for more details.