[英]How to export the same function but with different parameters by export
我需要導出相同的預定義函數,但導出時使用不同的參數。
我想要達到的目標:
module.exports = {
adminSaysHello: sayText("Hello", "admin"),
adminSaysText: sayText(text, "admin"),
sayText: sayText
}
function sayText(text, author){
console.log(`${author} said: ${text}`);
}
module.adminSaysHello();
module.adminSaysText("Good Bye");
module.sayText("Hello, my name is Foo", "Foo");
執行上述腳本時,出現以下錯誤:
adminSaysText: sayText(text, "admin"),
^
ReferenceError: text is not defined
如何正確導出?
您應該利用JavaScript中的閉包功能使其正常工作。 嘗試這個
module.exports = { adminSaysHello: sayText("Hello", "admin"), adminSaysText: sayText(text, "admin"), sayText: sayText } function sayText(text, author){ return function(){ console.log(`${author} said: ${text}`); } } module.adminSaysHello(); module.adminSaysText("Good Bye"); module.sayText("Hello, my name is Foo", "Foo");
您需要創建其他函數,然后使用特定的參數調用原始函數。 看起來像這樣:
module.exports = {
adminSaysHello: () => sayText('Hello', 'admin'),
adminSaysText: (text) => sayText(text, 'admin'),
sayText: sayText
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.