我知道模块的特征/目标之一是不能从脚本外部访问内部定义的变量/函数.但是,如果我想导出一个要在全局使用的特定函数,我该如何做?就像我在其他帖子中读到的那样,仅仅为窗口赋值似乎行不通:

index.html年内

<script type="module">
   const add = (a, b) => a + b;
   window.add = add;
</script>
<script>
   console.log(window.add(1, 2));
</script>

Uncaught TypeError: window.add is not a function%的结果

推荐答案

这是因为"模块"脚本是第二个被解释的.添加控制台日志(log)可以验证这一点.

<script type="module">
  var add = (a, b) => a + b;
  window.add = add;
  console.log("This prints second:", window.add)
</script>

<script>
  console.log("This prints first:", window.add)
  console.log(window.add(1, 3));
</script>

Javascript相关问答推荐

访客柜台的风格React.js

获取最接近的父项(即自定义元素)

React状态变量在使用++前置更新时引发错误

从外部访问组件变量-Vueejs

通过实现regex逻辑自定义数据表搜索

无法将nPM simplex-noise包导入在JS项目中工作

使用redux-toolet DelivercThunks刷新访问令牌

通过使用100%间隔时间来代表我们还剩多少时间来倒计时

硬币兑换运行超时

如何为我的astro页面中的相同组件自动创建不同的内容?

如何调用名称在字符串中的实例方法?

无法访问Vue 3深度监视器中对象数组的特定对象值'

Websocket错误—有一个或多个保留位开启:reserved1 = 1,reserved2 = 0,reserved3 = 0

从Nextjs中的 Select 项收集值,但当单击以处理时,未发生任何情况

如何在Svelte中从一个codec函数中调用error()?

如何使用TypeScrip设置唯一属性?

如何在我的Next.js项目中.blob()我的图像文件?

按什么顺序接收`storage`事件?

基于产品ID更新条带产品图像的JavaScript命中错误

Promise.race()返回已解析的promise ,而不是第一个被拒绝的promise