Javascript 是否应该将函数用作组织代码的手段,即使该函数只执行一次?

Javascript 是否应该将函数用作组织代码的手段,即使该函数只执行一次?,javascript,performance,coding-efficiency,Javascript,Performance,Coding Efficiency,我经常发现自己将代码分块到函数中只是为了使其更具可读性 例如: // Returns 4 random menus function getRandomMenus(menus_in){ //Return random menus } // Assign random decision times for players 1 and 2 function getTimes(){ // Return random times } 但这些功能只执行一次(启动程序时): 这似乎效率低下,但替

我经常发现自己将代码分块到函数中只是为了使其更具可读性

例如:

// Returns 4 random menus
function getRandomMenus(menus_in){
  //Return random menus
}

// Assign random decision times for players 1 and 2
function getTimes(){
  // Return random times
}
但这些功能只执行一次(启动程序时):

这似乎效率低下,但替代方案似乎更难遵循(即使对编写代码的我来说也是如此),当函数变得比上述示例更复杂时,情况就更为如此


即使这是低效的(我觉得是这样),为了可读性而牺牲效率可以吗

关于这个问题有一个很好的网站:@SlawaEremkin谢谢!这正是我想要的。最好是“分块到函数”,因为你的代码更容易理解,更接近应用程序逻辑方案,如果你不止一次地使用一个函数,很容易在一个地方找到并编辑它。@MichałDąbrowski你的评论实际上让我意识到了一个有趣的后续问题:如果多次执行代码会导致程序不正确地运行,该怎么办(与问题中的示例一样,重新生成随机生成的阵列会导致数据存储/跟踪问题)?最好不要把它变成一个函数,或者插入某种故障保护来检查它以前是否做过?@user2762533:这条最新评论本身可能是一个好问题,但一个简单的答案是,你可以轻松编写一个
once
函数修饰符,它将缓存第一次调用的结果并始终返回该值但是如果你为了避免逻辑问题而使用这个工具,你可能选择了一个不好的工具。它是解决结果固定的昂贵调用的性能问题的最有用的方法。
menus = getRandomMenus(all_menus);
all_times = getTimes();