提问者:小点点

如何在JavaScript中切换两组函数


我想让Cypress测试套件的一部分基于一个配置变量运行一组函数。 即。 如果版本变量为1,则应使用函数showMessage的版本1,如果版本变量为2,则应使用版本2。 我可以使用if语句来实现,如下所示。 我是一个JavaScript noob,但我知道还有更优雅的方法来实现它。

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

showMessage('2');

理想情况下,我希望将这些函数放在单独的文件夹中,每个文件夹定义自己的showMessage版本(没有if语句),但我不确定如何在JavaScript中正确地执行。

在某种程度上,我要求一种极其轻量级的依赖注入机制。


共1个答案

匿名用户

有很多很多方法可以做到这一点。 它基本上是一个决定什么是较少的工作和最具可读性。 但到最后,你永远没有办法选择你想要的东西。 在每个函数中,if的不同方法是:

null

var a = {};
var b = {};

a.showMessage = () =>  { console.log('Version 1'); }
b.showMessage = () =>  { console.log('Version 2'); }

//now decide which object to use... via switch or if or whatever
a.showMessage(); 
b.showMessage();