javascript - 为什么可以在类定义中调用函数而不在 NodeJS 中创建它的对象?
问题描述
例如:
var fs = require('fs');
var currDir = fs.readdirSync('./lib');
console.log(currDir);
此代码按预期正常工作。但我不明白,当类 fs 的对象尚未创建时,如何调用函数 fs.readdirSync() 。
var fsClass = require('fs');
var fs = new fsClass();
var currDir = fs.readdirSync('./lib');
console.log(currDir);
但是,当我尝试创建一个对象并在该实例上调用该函数时,代码不起作用。错误信息:
TypeError: fsClass is not a constructor
at Object.<anonymous>
谢谢你!
解决方案
该fs
对象已通过以下方式创建:
var fs = require('fs');
该fs
模块导出一个已经创建的对象。 fs
不是构造函数或类。它是一个已经创建的对象,您可以直接调用它的方法。
一个模块可以导出任意数量的东西。它可以导出一个已经创建并且已经有方法的对象。它可以导出一个构造函数,人们会调用它来创建一个对象。它只能导出一个值。在这种特殊情况下,fs
模块导出一个已经创建的模块,您可以直接调用该模块的方法。无需执行单独的构造函数来创建另一个对象。
推荐阅读
- php - WooCommerce - 从价格范围查询中隐藏产品类别
- php - 如何在 Symfony 4 控制台命令中获取应用程序根路径
- postgresql - 导入 .sql 数据库转储 postgres 11, pgadmin 4
- typescript - 打字稿按特定值减少对象数组
- azure-devops - AppCenter 成功后触发管道
- javascript - Javascript通过数组路径更新嵌套对象中的值
- c# - 什么可以代替Linq2Xsd?
- javascript - 如果条款和条件不被接受,请观看窗口点击
- matter.js - Matter.js 我总是需要相同的动作(在任何画布尺寸上)
- rest - 我可以在 Google Maps API 上生成多少个 API 密钥?