1. <tfoot id='Kyqfy'></tfoot>
      <legend id='Kyqfy'><style id='Kyqfy'><dir id='Kyqfy'><q id='Kyqfy'></q></dir></style></legend>

    2. <small id='Kyqfy'></small><noframes id='Kyqfy'>

          <bdo id='Kyqfy'></bdo><ul id='Kyqfy'></ul>
        <i id='Kyqfy'><tr id='Kyqfy'><dt id='Kyqfy'><q id='Kyqfy'><span id='Kyqfy'><b id='Kyqfy'><form id='Kyqfy'><ins id='Kyqfy'></ins><ul id='Kyqfy'></ul><sub id='Kyqfy'></sub></form><legend id='Kyqfy'></legend><bdo id='Kyqfy'><pre id='Kyqfy'><center id='Kyqfy'></center></pre></bdo></b><th id='Kyqfy'></th></span></q></dt></tr></i><div id='Kyqfy'><tfoot id='Kyqfy'></tfoot><dl id='Kyqfy'><fieldset id='Kyqfy'></fieldset></dl></div>

        “开关"的替代方案陈述

        时间:2023-09-07

            <bdo id='8EoaM'></bdo><ul id='8EoaM'></ul>

            <small id='8EoaM'></small><noframes id='8EoaM'>

              <tbody id='8EoaM'></tbody>

          • <tfoot id='8EoaM'></tfoot>
                <legend id='8EoaM'><style id='8EoaM'><dir id='8EoaM'><q id='8EoaM'></q></dir></style></legend>

                  <i id='8EoaM'><tr id='8EoaM'><dt id='8EoaM'><q id='8EoaM'><span id='8EoaM'><b id='8EoaM'><form id='8EoaM'><ins id='8EoaM'></ins><ul id='8EoaM'></ul><sub id='8EoaM'></sub></form><legend id='8EoaM'></legend><bdo id='8EoaM'><pre id='8EoaM'><center id='8EoaM'></center></pre></bdo></b><th id='8EoaM'></th></span></q></dt></tr></i><div id='8EoaM'><tfoot id='8EoaM'></tfoot><dl id='8EoaM'><fieldset id='8EoaM'></fieldset></dl></div>
                1. 本文介绍了“开关"的替代方案陈述的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我不想在我的代码中使用 Switch,所以我正在寻找一些替代方法

                  I do not want to use Switch in my code, so I'm looking for some alternative

                  开关示例:

                  function write(what) {
                  
                    switch(what) {
                  
                      case 'Blue':
                        alert ('Blue');
                      break;
                  
                      ...
                  
                      case 'Red':
                        alert ('Red');
                      break;
                  
                    }
                  
                  }
                  

                  不带开关的示例:

                  colors = [];
                  
                  colors['Blue'] = function() { alert('Blue'); };
                  colors['Red'] = function() { alert('Red'); };
                  
                  
                  function write(what) {
                  
                    colors[what]();
                  
                  }
                  

                  我的问题是:

                  1. 您知道其他替代方案吗?
                  2. 这是最好的解决方案吗?

                  推荐答案

                  我只有一个关于你的第二种方法的注释,你 不应使用数组 来存储非数字索引(在其他语言中您可以将其称为关联数组).

                  I have only a note about your second approach, you shouldn't use an Array to store non-numeric indexes (that you would call in other languages an associative array).

                  你应该使用一个简单的对象.

                  You should use a simple Object.

                  此外,您可能需要检查传递给 write 函数的 what 参数是否作为 colors 对象的属性存在并查看如果它是一个函数,那么您可以在没有运行时错误的情况下调用它:

                  Also, you might want to check if the what argument passed to your write function exists as a property of your colors object and see if it's a function, so you can invoke it without having run-time errors:

                  var colors = {};
                  
                  colors['Blue'] = function() { alert('Blue'); };
                  colors['Red'] = function() { alert('Red'); };
                  
                  
                  function write(what) {
                    if (typeof colors[what] == 'function') {
                      colors[what]();
                      return;
                    }
                    // not a function, default case
                    // ...
                  }
                  

                  这篇关于“开关"的替代方案陈述的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:带条件的开关盒 下一篇:Javascript 中字符串的 Switch-Case 未按预期工作

                  相关文章

                    • <bdo id='6NuHw'></bdo><ul id='6NuHw'></ul>
                  1. <legend id='6NuHw'><style id='6NuHw'><dir id='6NuHw'><q id='6NuHw'></q></dir></style></legend>

                    <tfoot id='6NuHw'></tfoot>

                    <small id='6NuHw'></small><noframes id='6NuHw'>

                      <i id='6NuHw'><tr id='6NuHw'><dt id='6NuHw'><q id='6NuHw'><span id='6NuHw'><b id='6NuHw'><form id='6NuHw'><ins id='6NuHw'></ins><ul id='6NuHw'></ul><sub id='6NuHw'></sub></form><legend id='6NuHw'></legend><bdo id='6NuHw'><pre id='6NuHw'><center id='6NuHw'></center></pre></bdo></b><th id='6NuHw'></th></span></q></dt></tr></i><div id='6NuHw'><tfoot id='6NuHw'></tfoot><dl id='6NuHw'><fieldset id='6NuHw'></fieldset></dl></div>