【发布时间】:2017-05-03 16:15:17
【问题描述】:
我目前正在学习nodeJS并运行v6.10.2版本,我正在查看graceful-js文件夹中的fs.js模块源代码并注意到其中的代码:
'use strict'
var fs = require('fs')
module.exports = clone(fs)
function clone (obj) {
if (obj === null || typeof obj !== 'object')
return obj
if (obj instanceof Object)
var copy = { __proto__: obj.__proto__ }
else
var copy = Object.create(null)
Object.getOwnPropertyNames(obj).forEach(function (key) {
Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))
})
return copy
}
一个模块如何要求自身它与克隆关键字有关吗?我也找不到任何其他名为 fs.js 的模块。
【问题讨论】:
-
这不是需要自身的内置
fs模块。这是实际fs模块中需要的优雅-fs 替换模块。 -
实际 fs 模块的代码在这里:github.com/nodejs/node/blob/master/lib/fs.js
-
@jfriend00 我在安装的 nodejs 文件夹中找不到实际的 fs 模块,graceful-fs 模块如何需要它?
-
它是内置的,而不是单独的文件。更容易在 github 上找到内置代码或在调试器中单步执行。
标签: node.js