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]
,但在其他情况下,它只是一个值,例如 4
或 undefined
,而在其他情况下,它是告诉你它有一个 getter 或一个 setter 或两者都有。从 JS 语言的角度来看,这些并不是所有类型,而是 属性 所含内容的文本描述。
And some of them have function parameter names?
是的,如果控制台知道函数引用的名称,则会列出。如果它不知道名称(例如匿名函数),则不会列出该名称。
Are they arrays?
没有。控制台只是选择使用括号字符来描述它的描述。与数组无关。
此格式只是控制台发明的一种快捷方式约定,用于告诉您每个属性中的内容。
我一直在学习 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]
,但在其他情况下,它只是一个值,例如 4
或 undefined
,而在其他情况下,它是告诉你它有一个 getter 或一个 setter 或两者都有。从 JS 语言的角度来看,这些并不是所有类型,而是 属性 所含内容的文本描述。
And some of them have function parameter names?
是的,如果控制台知道函数引用的名称,则会列出。如果它不知道名称(例如匿名函数),则不会列出该名称。
Are they arrays?
没有。控制台只是选择使用括号字符来描述它的描述。与数组无关。
此格式只是控制台发明的一种快捷方式约定,用于告诉您每个属性中的内容。