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

时间:2016-04-06 21:09:35

标签: javascript function optimization chaining

晚上/早上好(取决于你的地方),

我是新手'开发者'(JS / Meteor平台),每天我都会发现一个关于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()。function3()......但我不知道它是否退出了更好的方法来处理这种情况。

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

非常感谢。

1 个答案:

答案 0 :(得分:0)

您应始终努力防范小功能,以提高可读性。在新函数中对函数调用进行分组可能是个好主意。你越快确定一个函数做得越多越好。尽量只使用与当前函数相关的内容,例如:

您应该获取有关某人的大量信息,但信息会传播到不同的来源,迫使您有一个名称功能,一个用于年龄,一个用于鞋子尺寸等等。

而不是像

那样写
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个大小的交换机,我会尝试在每种情况下都不会编写很多代码,因为它可能会让人很难看到函数的作用。

我希望我能解决你的问题并至少给你一些你觉得有用的建议。