Object.prototype returns empty object in Node

后端 未结 2 918
误落风尘
误落风尘 2021-02-18 16:50

While I execute Object.prototype in browser console, i am getting all the properties and methods available inside Object.prototype. This is as expected

2条回答
  •  终归单人心
    2021-02-18 17:26

    It is because the console.log() in node use util.inspect(), which uses Object.keys() on objects, and it returns enumerable properties only. And Object.prototype contains non-enumerable properties, that is why it returns empty node.

    Similar behavior can be observed in the below snippet, when we console.log(Object.prototype) it logs an empty {};

    console.log(Object.prototype);

    But when we explicitly define an enumerable property in Object.prototype it logs an object containing that property :

    Object.defineProperty(Object.prototype, 'property1', {
      value: 42,
      enumerable : true
    });
    console.log(Object.prototype)

    For Reference

提交回复
热议问题