Javascript 从导入的ES模块读取import.meta

Javascript 从导入的ES模块读取import.meta,javascript,es6-modules,Javascript,Es6 Modules,返回有关当前模块的信息。表示此对象是可扩展的: 委员会的初步决定是,默认情况下import.meta对象是可扩展的,其属性是可写、可配置和可枚举的 锁定对象没有真正的好处,因为它是模块的本地对象,只能通过传递来显式共享。它不代表“全局状态”或任何类似的东西 如果我在模块a的import.meta上定义了一个属性: //模块A import.meta.test=“你好”; 导出默认值()=>{}; 导入模块A时可以读取该属性吗?如果是,怎么做 从“/module-a.js”导入模块a; cons

返回有关当前模块的信息。表示此对象是可扩展的:

委员会的初步决定是,默认情况下import.meta对象是可扩展的,其属性是可写、可配置和可枚举的

锁定对象没有真正的好处,因为它是模块的本地对象,只能通过传递来显式共享。它不代表“全局状态”或任何类似的东西

如果我在模块a的import.meta上定义了一个属性:

//模块A
import.meta.test=“你好”;
导出默认值()=>{};
导入模块A时可以读取该属性吗?如果是,怎么做

从“/module-a.js”导入模块a;
console.log(moduleA.meta);//未定义
//或者。。。
异步函数(){
const moduleA=import(“./module-a.js”);
console.log(moduleA.meta);//未定义
}

您自己的报价说明了一切:

因为它是模块本地的,并且只能通过传递来显式共享


我把“显式共享”理解为“导入”。我的思维模式是,模块是一个盒子,而导入.meta是盒子上的一个标签,包含盒子的详细信息。。。所以在这个类比中,我不应该在其他上下文中阅读这个标签吗?不,你不能,你需要明确地导出它。你为什么需要这个?定义新属性时,只需导出它。如果你愿意的话,你甚至可以导出一个叫做
meta
的东西。好吧,我想这门语言有点让我糊涂了。至于为什么,我正在试验一个测试框架。