javascript - 在 JavaScript ES6 中,当 JavaScript 文件经常连接成单个文件时,如何在每个文件中隔离名称?

标签 javascript ecmascript-6 es6-modules

在 ES6 中,如果文件中有一些代码:

const foo = 1;
var bar = { a: 3.14 };
export const wah = 1.414;

然后 foobarwah 在此文件中被隔离(孤立),除非其他文件执行了

import { wah } from "some-file";

foobar 保持隔离,其他文件无法导入或了解它们。

但是,JavaScript 文件通常会串联成一个文件,那么当所有内容都在一个文件中时,一个文件如何将名称与其他文件隔离呢?

最佳答案

您不能简单地将文件连接为一个文件。 “捆绑”软件,如 webpack 或 browserify 将用闭包包装这些模块(“单个文件”),因此变量和方法将是这些模块的本地变量和方法。

您不需要使用 ES6 来了解它是如何工作的。在“过去”,您还可以运行脚本来连接 js 文件。根据文件的结构,变量可能是“本地”或全局的。

// file one.js
(function() {
    var localVariable = 'I am local';
})();

//file two.js
var notSoLocal = 'I am NOT local';

关于javascript - 在 JavaScript ES6 中,当 JavaScript 文件经常连接成单个文件时,如何在每个文件中隔离名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44109019/

相关文章:

javascript - Babel 7 和 webpack 4 不适用于数组中的条件传播操作[短路语法]

javascript - 使用Apollo+Vue : What parameters are given to the "update" callback?

javascript - 导入请求文件时 Cookie 不在 header 中

javascript - 如何在ul中通过jquery添加列表项?

javascript - WebGL:INVALID_OPERATION:readPixels:ArrayBufferView 对于尺寸来说不够大

javascript - 按术语名称获取 GUID - jsom

javascript - 是否可以在休息参数上设置默认参数值

javascript - 使用强类型 map

javascript - 未捕获的 TypeError : (0 , _module) 不是一个函数

javascript - 使用 Typescript 使用默认导出