Making Object Literals a sub-class of Object

Guylian Cox guyliancox at
Fri Oct 14 13:14:37 UTC 2016

If you want to check that your variable is a plain old object and not some
other class, you can use

`Object.getPrototypeOf(x) === Object.prototype`

`Object.getPrototypeOf({}) === Object.prototype // true`

`Object.getPrototypeOf(new Map()) === Object.prototype // false`

Le ven. 14 oct. 2016 à 15:05, Brian Ninni <ninni.brian at> a écrit :

> I did a quick search and didn't find any recent mentions of this topic.
> On more than one occasion I've had to determine whether something was a
> plain old Object, or some other class. This involves checking that the
> given object was NOT an instanceof any other acceptable class.
> Array, RegExp, Function, and Class Literals all already create an Object
> sub-class, so why not Object Literals?
> It doesn't have to operate any differently than a standard Object does
> (though it allows room for deviation in the future), just have a different
> constructor so it can easily be determined whether it is a literal or not.
> This would break code that uses `obj.constructor === Object`, but that
> code is not always reliable since the 'constructor' property can be
> overwritten without any side-effects anyway.
> Are there any other major reasons why this is a bad idea?
> _______________________________________________
> es-discuss mailing list
> es-discuss at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list