我目前正在学习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
}
模块如何才能与clone关键字有关?我找不到任何其他名为fs.js的模块。
答案 0 :(得分:1)
您正在查看graceful-fs
包的部分代码,该包是NodeJS中内置fs
模块的包装器。所以这段代码不需要自己 - require语句导入内置的fs
模块,其余的代码克隆它,以便graceful-fs
包的其他部分可以覆盖一些默认的fs
功能而不影响原始模块。