sách gpt4 ai đã đi

javascript - 为什么 `var exports = module.exports = {};` 有效但 `let exports = module.exports = {};` 无效?

In lại 作者:搜寻专家 更新时间:2023-11-01 00:21:22 27 4
mua khóa gpt4 Nike

在我的项目代码优化期间,我替换了 khác nhau 的所有实例关键词 cho phép因为我认为 khác nhau 没有特别的用途.为此,我在所有文件中执行了“查找和替换”操作。

在一些自定义模块中,我使用了如下语句:

var exports = module.exports = {};

效果很好。

现在,将其替换为 cho phép 之后,它变成了:

let exports = module.exports = {};

现在不工作,报错

SyntaxError: Identifier 'exports' has already been declared

虽然我可以使用 khác nhau并避免这个问题,我还是想知道这背后的原因是什么。

biên tập:我没有使用过let exports = ;同一模块文件中的任何位置。所以这是我声明的唯一声明 exports变量。

1 Câu trả lời

原因是因为 exports 已经在 Nodejs 模块系统中初始化了。

https://nodejs.org/api/modules.html#modules_module_exports

对象存在,module.exports 当模块加载时。由于 cho phép 是范围特定的,它会阻止您限制范围。 hằng số 也会失败。

关于javascript - 为什么 `var exports = module.exports = {};` 有效但 `let exports = module.exports = {};` 无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43413432/

27 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com