簡體   English   中英

如何通過導出導出功能相同但參數不同的功能

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM