在 ESM 之前,我可以访问
module
变量。
我明确不想这样做:
const bar = 1
export function foo() {
bar
}
我想做这样的事情:
export function foo() {
module.bar = 1
}
global
是我唯一的选择吗?
编辑:我突然想到我可以使用函数作用域。这可以为模块范围提供类似的功能。
export async function foo() {
foo.bar = 1
}
编辑:实际上,如果它是异步的,这会导致问题。
不,没有。作用域不是对象(支持全局作用域的全局对象除外)。
不要试图混淆这些概念。如果你想要一个变量,就声明一个变量!这将使您和其他使用该代码的人变得更容易。