Node.js 对象语法

Node.js object syntax

我一直在学习 node.js 并摆弄了一下,直到我在节点控制台中遇到“进程”和“全局”命令。当我 运行 “处理”命令时,我看到了对象及其所有详细信息。

问题来了: 这些值在语法方面意味着什么:[Getter]、[Getter/Setter]、[Function: something] 和 [Function]?是这些类型吗?其中一些具有函数参数名称?他们是数组吗?我无法理解这些。

  binding: [Function: binding],
  _linkedBinding: [Function: _linkedBinding],
  _events: [Object: null prototype] {
    newListener: [ [Function: startListeningIfSignal], [Function] ],
    removeListener: [ [Function: stopListeningIfSignal], [Function] ],
    warning: [Function: onWarning],
    SIGWINCH: [Function]
  },
  _eventsCount: 4,
  _maxListeners: undefined,
  domain: [Getter/Setter],
 
...
  _fatalException: [Function],
  setUncaughtExceptionCaptureCallback: [Function],
  hasUncaughtExceptionCaptureCallback: [Function: hasUncaughtExceptionCaptureCallback],
  emitWarning: [Function: emitWarning],
  nextTick: [Function: nextTick],
  _tickCallback: [Function: runNextTicks],
  _debugProcess: [Function: _debugProcess],
  _debugEnd: [Function: _debugEnd],
  _startProfilerIdleNotifier: [Function: _startProfilerIdleNotifier],
  _stopProfilerIdleNotifier: [Function: _stopProfilerIdleNotifier],
  stdout: [Getter],
  stdin: [Getter],
  stderr: [Getter],
  abort: [Function: abort],
  umask: [Function: wrappedUmask],

您看到的是控制台试图向您解释每个属性中的内容。这不是 Javascript 语法或 Javascript 语言,只是控制台解释事物的方式。

以下是您所看到的一些解释:

[Function]表示这个属性

中有函数引用

[Function: somename] 表示在这个 属性

中有一个带有名称的函数引用

[Getter] 表示这个 属性 有一个 getter

[Object: null prototype] 表示这包含一个没有原型的对象

[4] 表示 属性 包含值 4

[undefined] 表示 属性 包含值 undefined

[Getter/Setter] 表示 属性 同时具有 setter 和 getter

Are these types?

不完全是。它们是对 属性 包含的内容的描述。在某些情况下,它是一种类型,例如 [Function][Object],但在其他情况下,它只是一个值,例如 4undefined,而在其他情况下,它是告诉你它有一个 getter 或一个 setter 或两者都有。从 JS 语言的角度来看,这些并不是所有类型,而是 属性 所含内容的文本描述。

And some of them have function parameter names?

是的,如果控制台知道函数引用的名称,则会列出。如果它不知道名称(例如匿名函数),则不会列出该名称。

Are they arrays?

没有。控制台只是选择使用括号字符来描述它的描述。与数组无关。

此格式只是控制台发明的一种快捷方式约定,用于告诉您每个属性中的内容。