如果他们执行相同的任务,我们应该在JavaScript中合并两个函数吗?

时间:2016-06-25 02:10:16

标签: javascript refactoring

您好,我的项目中有一些JavaScript函数。这些函数主要是将html标记值设置为true或false。  这些操作是否符合标准编程惯例。如何重构这些功能?



function first(){
      if(myArray[questionIndex] ==1)
        var question = "true";
      else
         question = "false";    
      
            firstStr = firstStr + '<flag isFlagged="' + question + '" />';

    }

    function second() {  
      if(myArray[questionIndex] ==1)
        var question = "true";
      else
        question = "false";    
      
            secondStr = secondStr + '<flag isFlagged="' + question + '" />';

    }
&#13;
&#13;
&#13;

我的问题是我应该合并它并将函数分配给变量并返回像这样的值

&#13;
&#13;
var resultValue(){
  if(myArray[questionIndex] ==1)
    return "true";
  else
    return "false";

}

function first(){
  var question = resultValue();     
            firstStr = firstStr + '<flag isFlagged="' + question + '" />';

    }

function second() {
  var question = resultValue();       
            secondStr = secondStr + '<flag isFlagged="' + question + '" />';

    }
&#13;
&#13;
&#13;

什么是优化的解决方案。

提前致谢。

2 个答案:

答案 0 :(得分:0)

嗯,由您决定保持多项功能表现相同&#39;任务或将它们折射成一个功能。合并的目的是帮助您更长时间地维护代码,并使代码更加清晰。

如果合并你的代码,它将是这样的:

function func(str){
      if(myArray[questionIndex] ==1)
        var question = "true";
      else
         question = "false";    

            str = str + '<flag isFlagged="' + question + '" />';
return str;
    }

然后你可以像这样调用这个函数:

firstStr = func(firstStr);
secondStr = func(secondStr);

希望这有帮助。

答案 1 :(得分:0)

怎么样:

function result(str) {
  var resultValue = ""
  if (myArray[questionIndex] === 1)
    resultValue = "true";
  else
    resultValue = "false";    
  return str + '<flag isFlagged="' + str + '" />';
}

此外,您可以定义一些别名:

function first() { firstStr = result(firstStr); }
function second() { secondStr = result(secondStr); }