[英]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.