簡體   English   中英

JavaScript中兩組功能如何切換

[英]How to switch between two sets of functions in JavaScript

我想讓賽普拉斯測試套件的一部分運行基於配置變量的一組函數。 即,如果版本變量為 1,則應使用 function showMessage 的版本 1,如果版本變量為 2,則應使用版本 2。我可以使用如下所示的 if 語句來做到這一點。 我是 JavaScript 菜鳥,但我知道有更優雅的方法可以做到這一點。

function showMessage(version) {
    if (version == '1') {
        console.log('Version 1');
    }
    else {
        console.log('Version 2')
    }
}

showMessage('2');

理想情況下,我希望將函數放在單獨的文件夾中,每個文件夾都定義自己的 showMessage 版本(沒有 if 語句),但我不確定如何在 JavaScript 中正確執行此操作。

在某種程度上,我要求一種極其輕量級的依賴注入機制。

有很多方法可以做到這一點。 它基本上是決定什么是更少的工作並且是最易讀的。 但最終沒有辦法選擇你想要的東西。 如果在每個 function 中,不同的方法是:

 var a = {}; var b = {}; a.showMessage = () => { console.log('Version 1'); } b.showMessage = () => { console.log('Version 2'); } version ='1' //set up 'reference' object c in one place, based on the selected version c = (version == '1'? a: b); //Then every time we call showMessage, use the reference object (no ifs) c.showMessage();

另一種選擇是使用 function 的原型。 也就是說,字面上與上面的示例相同,但事實上它以某種方式更可重用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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