javascript - 访问导出的模块
问题描述
拥有这样一个简单的模块(exports.js):
module.exports.val1 = "boz";
exports.val2 = "bar";
module.exports.fun1 = function Something() {
console.log("bla bla");
};
exports.fun2 = function Something() {
console.log("bla bla");
};
exports = "abc"; //1
module = "def" //2
console.log(module);
console.log(exports);
和导入它的文件(index.js):
var imp = require("./exports")
console.log(imp)
我得到输出:
def
abc
{val1: "boz", val2: "bar", fun1: ƒ Something(), fun2: ƒ Something()}
导入如何在索引文件中访问/定义,因为它在模块文件本身的#1和#2上被覆盖(从模块日志中获取这两个字符串可以观察到什么)?
解决方案
我相信这就像你用一个对象调用一个函数一样。该函数获取对象引用的副本,因此它可以操作对象,所有重新分配所做的只是在其他地方的函数点中制作引用的本地副本。
function caller() {
var obj = {}
callMe(obj);
obj.name; // "Hello"
}
function callMe(obj) {
obj.name = "Hello";
obj = {};
}
请注意,调用者传入的 obj 不受“callMe”中重新分配的影响。请参阅“按值传递”。
推荐阅读
- view - 如何查询 teradata 数据库中所有视图中所有 Teradata 视图列的数据类型
- python - Python:从二维列表的第一列更改随机元素
- streaming - 将所有字段转换为 telegraf.conf 中的标签
- php - 在 WooCommerce 单一产品页面上的属性列表中添加元字段
- react-native - React-native:是否可以将整个 SectionList 部分包装在视图中?
- angular - 具有多维数组的Angular 2动态形式
- python - 在张量流中结合相邻像素的 RMSE 计算
- composer-php - 安装过程中出现“staudenmeir/laravel-adjacency-list ^1.0”包错误
- php - 检查字符串是 Carbon 中的有效日期,带有溢出和相关格式标志
- git - 重新运行 git status 无法正常工作