如何编程一个函数的输出以输入另一个函数的输入?

时间:2014-09-18 19:48:43

标签: javascript function if-statement switch-statement expression

如果我有这样的功能:

var danger = 1;

function stepLeft() {
    if (danger == 1) {
        alert("stop")
    } else {
        alert("start")
    }
 }

...如何使“alert(”stop“)”或任何其他类似的输出触发并为switch语句提供表达式输入?所以我可以掀起一系列后果的连锁反应?谢谢!

1 个答案:

答案 0 :(得分:1)

你在这里混淆了一些问题。 alert()是一个UI动作,它不会触发代码中的任何内容。它只是在UI上做了一些事情。如果您希望函数在代码中触发其他内容,则需要调用其他内容:

function stepLeft() {
    if (danger == 1) {
        alert("stop")
        someOtherFunction();
    } else {
        alert("start")
        yetAnotherFunction();
    }
}

或者,如果功能可以更改,您可以向stepLeft提供功能:

function stepLeft(stopFunction, startFunction) {
    if (danger == 1) {
        alert("stop")
        stopFunction();
    } else {
        alert("start")
        startFunction();
    }
}

并称之为:

stepLeft(someOtherFunction, yetAnotherFunction);

或者您可能stepLeft返回一个值,其他函数可以使用该值:

function stepLeft() {
    if (danger == 1) {
        alert("stop")
        return "stop";
    } else {
        alert("start")
        return "start";
    }
}

并称之为:

var actionPerformed = stepLeft();
someOtherFunction(actionPerformed);

这实际上是将您的UI操作与逻辑分离的好机会:

function stepLeft() {
    if (danger == 1) {
        return "stop";
    } else {
        return "start";
    }
}

var actionPerformed = stepLeft();
alert(actionPerformed);
someOtherFunction(actionPerformed);

关键是,有很多方法可以构造你的代码,以便一个函数的结果可以被另一个函数使用。