如何在逻辑块之前引入新的If语句时构造代码

时间:2017-03-07 20:26:56

标签: javascript function refactoring structure

所以我想说我有这样的功能:

function doStuff () {
    let myVar = 3;
    doSomething()
    ......doManyThings()
}

现在我想介绍一些像这样的逻辑:

function doStuff () {
    if( true ) {
        doThis()
        ....do All The Stuff Above
        doThat()
    } else {

        ....do All The Stuff Above
        doAnotherThing()
    }
}

在不引入全新功能的情况下处理此函数重构的好方法是什么?

2 个答案:

答案 0 :(得分:1)

您只能将条件用于doThis()

function doStuff () {
    if ( true ) {
        doThis()
    } 
    ....do All The Stuff Above
}

修改

如果再次使用相同的部件,请使用don't repeat yourself (DRY)原则并将部件移动到新功能中,可能在正确范围的实际功能内部。

答案 1 :(得分:1)

function doStuff () {
    let myNewFunction = function () {
          ....do All The Stuff Above
    }
    if( true ) {
        doThis()
        myNewFunction()
        doThat()
    } else {
        myNewFunction()
        someOtherNewFunction()
    }
}

应该没问题。 考虑将常用函数移动到对象中。查看this article了解详情。