Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
导入';它不是由Javascript中的模块显式导出的_Javascript - Fatal编程技术网

导入';它不是由Javascript中的模块显式导出的

导入';它不是由Javascript中的模块显式导出的,javascript,Javascript,在Javascript中,是否有任何方法可以导入(或要求)模块未从该模块导出的对象 我意识到这可能是一种不好的做法,但我想知道这是否可能。我有Python的背景,所以我被这样的想法弄糊涂了:我可以导入一个模块,但不能用Javascript访问它的所有数据元素。不使用模块API。一个模块导出一个对象,任何导入该模块的代码都会被赋予一个对该对象的引用(JS意义上的“引用”) 第节介绍了导出,非常详细地说明了export关键字用于在模块的导入/导出表中包含一些局部变量。很简单,如果不指定导出,则变量是

在Javascript中,是否有任何方法可以导入(或要求)模块未从该模块导出的对象


我意识到这可能是一种不好的做法,但我想知道这是否可能。我有Python的背景,所以我被这样的想法弄糊涂了:我可以导入一个模块,但不能用Javascript访问它的所有数据元素。

不使用模块API。一个模块导出一个对象,任何导入该模块的代码都会被赋予一个对该对象的引用(JS意义上的“引用”)

第节介绍了导出,非常详细地说明了
export
关键字用于在模块的导入/导出表中包含一些局部变量。很简单,如果不指定导出,则变量是模块作用域的局部变量

这与遗留IIFE模块的行为相匹配,遗留IIFE模块使用函数作用域隐藏其局部变量,然后导出要公开的对象

ES6模块,如:

export class Foo {
  ...
}

export const bar = new Foo();
传输后,将显示以下内容:

(function () {
  function Foo() {
    ...
  }
  var bar = new Foo();
  return {
    Foo: Foo,
    bar: bar
  };
})();
关于JS模块的大多数文章(甚至)都没有提到未导出变量的情况

为了进行比较,声明模块有一个变量
exports
和“模块可以在执行时添加其API”。CommonJS标准是迄今为止我发现的唯一一个仅通过关键字/对象导出的引用(来自模块上下文2.1):

模块必须使用“导出”对象作为导出的唯一方式


甚至python也有私有变量,不是吗?是的,但我的意思是,不是成员(比如属性或方法)。这些不是私有的吗?顺便说一句,你是在问ES6模块、CommonJS模块还是其他什么?这是一个一般性的问题,并不特定于一个模块系统(尽管我猜答案可能取决于系统)。至于Python,我不确定,我认为一切都可以通过内省来访问,但也许我们应该将其作为单独的Python问题发布;)