推荐一个包含3个文件的js模块:A.jsB.jsC.js.

A.js中,我确实输出了变量a,因为我在B.jsC.js中需要它.

我想为使用我的模块的用户提供对从B.jsC.js输出的元素的轻松访问,但用户不应使用A.js中的const a.

因此,A.js的伪代码是这样的:

const a = something;

export a withRestrictions ('B.js', 'C.js');

我从未见过这样的事情,但也许有一个技巧我忽略了.相当于在使用Python时编辑__init__.py.

推荐答案

在A.js中,我确实会输出变量a,因为我在B.js和C.js中需要它.

aA.js保持"私有"的一种方法是从B/C.js中输出一个函数,在该函数中您可以使用a的Close.在这种情况下,您不必出口a个.

// A.js
import _b from B.js;
import _c from C.js;

const a = 42;
const b = _b(a);
const c = _c(a);


// B.js
export default BFactory;

function BFactory(a) { ... }

// C.js
export default CFactory;

function CFactory(a) { ... }

Javascript相关问答推荐

如何使图像逐渐/平稳地响应(先减少宽度,然后减少高度)

在Chart.js 4.4.2中移动到不同大小的容器时,图表不会调整大小

如何循环访问对象数组并以关键值形式获得结果?

如何访问react路由v6加载器函数中的查询参数/搜索参数

如何解决这个未能在响应上执行json:body stream已读问题?

使用useup时,React-Redux无法找到Redux上下文值

当在select中 Select 选项时,我必须禁用不匹配的 Select

窗口.getComputedStyle()在MutationObserver中不起作用

使用javascript将Plotly Expandable Sparkline转换为HighCharter Plot在bslib卡中

Msgraph用户邀请自定义邮箱模板

嵌套异步JavaScript(微任务和macrotask队列)

google docs boldText直到按行执行应用脚本错误

如何控制Reaction路由加载器中的错误状态?

如何在coCos2d-x中更正此错误

将内容大小设置为剩余可用空间,但如果需要,可在div上显示滚动条

在查看网页时,如何使HTML中的按钮工作方式类似于鼠标上的滚轮或箭头键?

如何使用画布在另一个内部绘制一个较小但相同的形状,同时保持恒定的边界厚度?

是否可以在不更改组件标识的情况下换出Reaction组件定义(以维护状态/引用等)?如果是这样的话,是如何做到的呢?

用另一个带有类名的div包装元素

Pevent触发material 用户界面数据网格中的自动保存