想象一个任务,其中有一组具有type
属性的资源。基于此type
,需要执行不同的功能。实现这一点的一种方法是通过多个 if/else 或 switch/case 条件。
// at run time (run many times)
if (resources[ix].type == 'TYPE_ONE') {
runFuctionOne();
}
else{
runFuctionTwo();
}
另一种方法是维护一个更多的属性,例如execute
将分配一个满足资源的type
. 那么你就不需要 if/else 条件并且可以直接执行它的功能,比如:
// at assign time (run once)
if (resources[ix].type == 'TYPE_ONE') {
resources[ix].execute = runFunctionOne;
}
else{
resources[ix].execute = runFuctionTwo;
}
// then at run time (run many times)
resources[ix].execute();
那么,哪种方式效率更高呢?有没有更好的办法?
编辑:我对在 Node.js 环境而不是浏览器环境中有效的解决方案更感兴趣。