[英]how to export javascript function as a module
我已经导出了一个 function 并将其导入到 Javascript 中,但我可以访问其中的函数的唯一方法是像这样键入它:
myModule.mainFunc().func1()
但我想要实现的更像是这样的:
myModule.mainFunc.func1()
目前,如果我尝试像这样引用它,它会给出错误。
我尝试将函数的值作为对象返回,但它仍然需要我将其作为函数调用。
function greet() {
var hello = () => {
console.log("hello there");
};
var hi = () => {
console.log("hi there");
};
return { hello: hello, hi: hi }; // I've tried this doing it like this
}
export default {greet};
这是我导入它的方式:
import greetings from "./index.js";
greetings.greet().hello()
您不能将 Greet greet
中定义的函数引用为
myModule.mainFunc.func1()
因为myModule.mainFunc
本身就是一个greet
function 。 您要导入的是调用greet
function 的结果。
您可以通过使 function 成为IIFE (Immediately Invoked Function Expression)
来避免手动调用greet
function。 这样做将在定义 function 后立即执行它。
const greet = (function() {
var hello = () => {
console.log("hello there");
};
var hi = () => {
console.log("hi there");
};
return { hello, hi };
})();
export default { greet };
现在当你导出greet
时,你不是在导出greet
function,而是调用greet
function 的结果,它是一个 object 有两个功能, hello
和hi
。
将 greet 定义为 object
var greet = {
hello: () => {
console.log("hello there");
},
hi: () => {
console.log("hi there");
},
}
并像greet.hello()一样访问它
你在哪个环境运行你的代码? 如果是 NodeJS,请确保它支持 ES6 模块作为您当前的导出和导入样式。 普通 NodeJS 只支持 CommonJS 模块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.