当前位置: 首页 > 知识库问答 >
问题:

名称行间距JavaScript从本地模块导入

轩辕弘雅
2023-03-14

我正在迁移过去不使用本机JS模块的代码。

// File: form.js
// `lc` is a global object I attach each file's functions to.
let lc = window.lc || {}
lc.form = {};
lc.form.add = function() {
   // add a form
}

然后将被称为lc.form.add(),这很好,因为单词add有上下文。

但是,现在我将代码更改为使用JS模块:

// File: form.mjs
export function add() {
   // add a form
}

然后将被称为add(),它没有上下文。现在我明白我可以做到:

import {add as formAdd} from '/form.mjs'

但这就像是一个倒退,开始蓝精灵命名所有进口的东西。

是否有一种方法可以像Python中那样导入模块,然后调用模块的函数。例如,使用点等符号访问其功能,类似如下:

import '/form.mjs' as form
form.add()

共有1个答案

凌景辉
2023-03-14

您正在寻找名称空间导入:

import * as form from '/form.mjs';
form.add();
 类似资料:
  • 问题内容: 我正在编写一个小脚本,该脚本从目录获取文件名,并将其传递给另一个模块,然后该模块导入文件。 因此流程类似于1)获取模块名称(将其存储在变量中)2)将此变量名称传递给模块3)导入名称存储在变量名称中的模块 我的代码就像 问题在于,当它到达import语句时,它将modulename读取为真实的模块名称,而不是存储在此变量中的值。我不确定这在python中如何工作,解决这个问题的任何帮助都

  • 我有一个关于ES6导入模块的问题。 我试图在我的Three.js代码中添加OrbitControl。由于OrbitControls是一个单独的模块,我需要在我的代码中分别导入它们,如下所示。它工作得很好。 然而 我首先想到的是 原因是, 据我所知,如果模块将某些内容导出为导出默认值, 我可以通过在“导入”代码中添加花括号来访问它们。 但是,它没有起作用,因此我假设“三个orbitcontrols”

  • 问题内容: 我正在尝试使用该函数进行复制,但似乎遇到了麻烦。 一个简单的例子很简单: 我遇到的问题是我正在从子包中导入名称(即): 所以我想要的是 但这只是导入了顶级包,而不是子包: 问题答案: 该函数将返回包的顶级模块,除非您传递了非空参数: 请参阅该函数的Python文档。

  • 问题内容: 考虑以下jfiddle http://jsfiddle.net/bchapman26/9uUBU/29/ 我有2个模块(module1和module2)。module1和module2都定义了一个名为myService的服务。当两个模块都导入myApp时,这似乎在Angular中的myService上创建了名称冲突。看来AngularJs仅使用第二个服务定义,而没有警告您可能的问题。

  • 问题内容: 这是我的代码: 有什么帮助吗? 问题答案: 如urllib2文档中所述: 该模块已在Python 3中分为几个名为和的模块。2to3在将源转换为Python 3时,该工具将自动调整导入。 所以你应该说 你当前正在编辑的代码示例不正确,因为你在说urllib.urlopen("http://www.google.com/”)而不是urlopen("http://www.google.co

  • 我想将一些通用功能外包给一个模块中的多个笔记本电脑(也用于测试目的)。当前目录结构如下所示 在中,有一个简单的函数 然而,当我想导入和使用在通过使用(我认为有意义的) 我得到一个。我做错了什么?我正在使用Python 3.9。