Javascript 对象属性(在 Node 中)未被记录或使用不同的名称记录
Javascript Object properties (in Node) not getting logged or logged with a different name
我正在使用来自 felixge 的强大的 Node 包。这更像是一个 Javascript 问题,而不是一个特定于强大的问题,或者我认为是这样。
如果我在 MYOBJ 上执行 console.log,我会得到以下信息:
{ file1:
File {
domain: null,
_events: {},
_eventsCount: 0,
_maxListeners: undefined,
size: 62464,
path: 'myDir/upload_e79d8d551721e2f399afbc39d5d5eaab.doc',
name: 'somefile.doc',
type: 'application/msword',
hash: null,
lastModifiedDate: Thu May 19 2016 20:22:24 GMT+0530 (IST),
_writeStream:
WriteStream {
_writableState: [Object],
writable: true,
domain: null,
_events: {},
_eventsCount: 0,
_maxListeners: undefined,
path: 'uploadDir/upload_1e0e9625e27f5c5172eaf5d18172f946.doc',
fd: null,
flags: 'w',
mode: 438,
start: undefined,
pos: undefined,
bytesWritten: 62464,
closed: true } } }
如果我做 console.log,就像这样:
for (var filename in MYOBJ)
console.log(MYOBJ[filename]);
我得到以下信息:
{ size: 62464,
path: 'myDir/upload_e79d8d551721e2f399afbc39d5d5eaab.doc',
name: 'somefile.doc',
type: 'application/msword',
mtime: '2016-05-19T14:52:24.129Z' }
我的明显问题是:
为什么 "file1" 的其他属性没有显示?可能他们不是对象的"ownProperty"?即便如此,为什么"lastModifiedDate"变成了"mtime?"
让我猜猜……cosnole.log
的实现可能使用 Object.getOwnPropertyDescriptor() 并且可以列出所有不可枚举的值
var o = {}
Object.defineProperty(o, 'nonEnumerableValue', {value: 1})
console.log(o) // {}
console.log(o.nonEnumerableValue) // 1
我正在使用来自 felixge 的强大的 Node 包。这更像是一个 Javascript 问题,而不是一个特定于强大的问题,或者我认为是这样。
如果我在 MYOBJ 上执行 console.log,我会得到以下信息:
{ file1:
File {
domain: null,
_events: {},
_eventsCount: 0,
_maxListeners: undefined,
size: 62464,
path: 'myDir/upload_e79d8d551721e2f399afbc39d5d5eaab.doc',
name: 'somefile.doc',
type: 'application/msword',
hash: null,
lastModifiedDate: Thu May 19 2016 20:22:24 GMT+0530 (IST),
_writeStream:
WriteStream {
_writableState: [Object],
writable: true,
domain: null,
_events: {},
_eventsCount: 0,
_maxListeners: undefined,
path: 'uploadDir/upload_1e0e9625e27f5c5172eaf5d18172f946.doc',
fd: null,
flags: 'w',
mode: 438,
start: undefined,
pos: undefined,
bytesWritten: 62464,
closed: true } } }
如果我做 console.log,就像这样:
for (var filename in MYOBJ)
console.log(MYOBJ[filename]);
我得到以下信息:
{ size: 62464,
path: 'myDir/upload_e79d8d551721e2f399afbc39d5d5eaab.doc',
name: 'somefile.doc',
type: 'application/msword',
mtime: '2016-05-19T14:52:24.129Z' }
我的明显问题是:
为什么 "file1" 的其他属性没有显示?可能他们不是对象的"ownProperty"?即便如此,为什么"lastModifiedDate"变成了"mtime?"
让我猜猜……cosnole.log
的实现可能使用 Object.getOwnPropertyDescriptor() 并且可以列出所有不可枚举的值
var o = {}
Object.defineProperty(o, 'nonEnumerableValue', {value: 1})
console.log(o) // {}
console.log(o.nonEnumerableValue) // 1