繁体   English   中英

如何检查节点REPL中的默认对象属性

[英]How to inspect the default object properties in the Node REPL

我正在使用Node REPL。 当我们在这里定义一个constructor函数时,如下所示:

function Rabbit() { }

它是prototype对象,即Rabbit.prototype具有constructor属性,可以这样引用:

>> Rabbit.prototype.constructor
   [Function: Rabbit]

constructor属性未在Rabbit.prototype对象中列出,但是执行Rabbit.prototype.constructorRabbit.prototype["constructor"]会适当地提供此信息。

>> Rabbit.prototype
   {}

a)如何查看这些默认属性,例如constructorhasOwnPropertytoStringvalueOf等? 在使用控制台的 浏览器中 ,我得到了一个不错的下拉列表。 我期待为此的某种dir命令。

b)当我在控制台中启动Rabbit.prototype时,为什么没有显示inherited属性? 是否因为我们只想显示用户添加的内容而期望?

c)它们实际在哪里定义ObjectFunction

编辑:-似乎这些都添加到Object.prototype 参考:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype

也,

>> Object.getOwnPropertyNames(Object.prototype)
[ 'constructor',
  'toString',
  'toLocaleString',
  'valueOf',
  'hasOwnProperty',
  'isPrototypeOf',
  'propertyIsEnumerable',
  '__defineGetter__',
  '__lookupGetter__',
  '__defineSetter__',
  '__lookupSetter__' ]

我们是否需要通过在每个对象上应用Object.getOwnPropertyNames来遍历原型链,以列出拥有的继承的对象?

问候。

是的,它需要通过应用Object.getOwnPropertyNames()来获得非枚举属性列表,从而使prototype chain向下移动。 从这里得到它:

是否可以获得对象的不可枚举的继承属性名称?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM