嵌套函数与链接方法与&&函数序列

Nested functions vs. chaining methods vs. a && sequence of functions

本文关键字:amp 函数 方法 链接 嵌套      更新时间:2024-01-31

晚上好/早上好(取决于您的位置),

我是一个新手"开发者"(JS/Meteror平台),每天我都会发现JS的新东西。知道我的低水平,这并不难。。。

我目前想知道编码switch(true)的最佳方式/实践。更确切地说,我有一个Switch statement,大约有20个cases

目前,我决定不把一些cases嵌套在一起,我发现它不太容易阅读。所以我的声明看起来像这样:

switch()
  case 1
  case 2
  case 3
  case 4
  case 5
  case 6
  ...
  default

而不是类似的东西:

switch()
  case 1
    if
    elseif
    else
  //or
  case 2
    switch()
      case 2.1
      case 2.2

我的问题是:每个案例都测试5个以上的函数。所以case基本上是这样写的:

case ( function1()
       && function2()
       && function3() == null
       && typeof abc[1] === 'undefined'
       && function4() === 'xyz') : //etc...

有没有更好的方法来链接函数?

我目前正在以jQuery的方式研究链接方法:function().function2().formation3()……但我不知道它是否有更好的方法来处理这种情况。

我很乐意收到您的反馈/建议以及您推荐的任何阅读/讲座。我也希望这个问题对SO来说是"正确的"。

非常感谢。

为了提高可读性,您应该始终努力使用小函数。将函数调用分组到新函数中可能是个好主意。确定函数的作用越快越好。尽量只拥有与当前功能相关的内容,例如:

你应该获取很多关于一个人的信息,但这些信息被分散到不同的来源,迫使你有一个功能来显示姓名、年龄、鞋码等等

而不是像那样写

case 1:
    var person = {
        name: getName(),
        age: getAge(),
        showSize: getShowSize()
    };

你可以像一样写

case 1:
    var person = getPerson();

以及getPerson函数

function getPerson() {
    return {
        name: getName(),
        age: getAge(),
        showSize: getShowSize()
    }
}

在你的20个案例中,我相信有一些逻辑函数组在几个案例中使用。如果它们有任何逻辑连接,请尝试将它们分组在一起。对于20种情况下的开关,我尽量不在每种情况下都写太多代码,因为这可能会让我很难看到函数的作用。

我希望我了解你的问题,至少给了你一些有用的建议。