Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.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_Ecmascript 6_Es6 Modules - Fatal编程技术网

Javascript “一个人是怎么做的?”;隐式导出整个模块";?

Javascript “一个人是怎么做的?”;隐式导出整个模块";?,javascript,ecmascript-6,es6-modules,Javascript,Ecmascript 6,Es6 Modules,以下内容来自MDN对JavaScriptimport语句的引用(增加了强调): 从模块导入单个导出 给定一个名为myExport的对象或值,该对象或值已从模块mymodule隐式导出(因为整个模块已导出)或显式导出(使用语句),这会将myExport插入当前范围 import {myExport} from '/modules/my-module.js'; 我知道从模块显式导出对象或值(使用export语句)意味着什么,但如何隐式导出它们(不使用export语句而隐式导出)?导出“整个模块”意

以下内容来自MDN对JavaScript
import
语句的引用(增加了强调):

从模块导入单个导出 给定一个名为
myExport
的对象或值,该对象或值已从模块
mymodule
隐式导出(因为整个模块已导出)或显式导出(使用语句),这会将
myExport
插入当前范围

import {myExport} from '/modules/my-module.js';

我知道从模块显式导出对象或值(使用
export
语句)意味着什么,但如何隐式导出它们(不使用
export
语句而隐式导出)?导出“整个模块”意味着什么?

让我们这样做吧

  • 给定一个名为myExport的对象或值,该对象或值已从模块隐式导出(因为已导出整个模块)
  • 给定一个名为myExport的对象或值,该对象或值已从模块显式导出(使用export语句)
  • 所以我可以像这样导出一个对象或函数

    // ./modules/my-module.js
    export default UserApi = {
      myExport: function() {
       console.log(please make api call)
      }
    }
    
    
    // ./otherfile.js
    import {myExport} from '/modules/my-module.js';
    
    

    我从不显式导出
    myExport
    ,但是您可以导入
    myExport
    ,而不导入我显式导出的
    UserApi
    ,我认为这条语句的措辞有些混乱,假设我理解正确。我认为他们所说的“显式”应该是显式命名的,例如

    而隐式将是未显式命名的,如

    export * from "./foo.js";
    
    那你在干什么

    import { foo } from "./mod.js";
    

    只要
    mod
    foo.js
    文件重新导出
    foo
    ,就可以工作。

    exports.variableName=1
    我认为这是语法。但我不是100%,我很想了解更多关于这个主题的知识。@FrancisLeigh:这是CommonJS模块,而不是ES6。没有
    export
    语句,就没有ES6导出,但是,在重新导出的情况下,可能不需要显式地命名导出。SyntaxError:请求的模块'/modules/my module.js'没有提供名为'myExport'的导出是的,这是唯一合理的解释。您可能是对的,但我已经放弃了这种想法,因为它既不是
    mod
    mod的“全部”(仅重新导出
    foo
    的导出)或
    foo
    的“整个”(仅导出其明确导出的内容)都不会实际导出;如果正确,则“因为整个模块已导出”语句应真正改为“因为某些模块使用
    export*from
    语句完全重新导出”或者类似。是的,我完全同意。我注意到MDN在某个时候已经被更新,以确认这确实是他们的意图,尽管他们仍然使用相同的令人困惑的语言。
    import { foo } from "./mod.js";