【问题标题】:How do I program the output of one function to feed into the input of another?如何对一个函数的输出进行编程以馈入另一个函数的输入?
【发布时间】:2014-09-18 19:48:42
【问题描述】:

如果我有这样的功能:

var danger = 1;

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

...如何制作“alert("stop")”或任何其他类似触发器的输出,并为类似 switch 语句的内容提供表达式输入?所以我可以引发连锁反应的后果吗?谢谢!

【问题讨论】:

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


【解决方案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);

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

【讨论】:

  • 我不认为这是他的意思...问题是输入另一个人的输入。我相信他想要一个提示
  • @LcSalazar:可能,尽管在那种情况下它的描述非常含糊。我不会将提示称为“函数的输出”。
  • 是的,这正是我想要的,非常感谢!我的意思是使用“alert()”或任何其他输出作为触发器。不知道为什么这得了-2分,如果不回答我自己的问题,我怎么知道我想做什么?这个网站真的不适合初学者。非常感谢!
  • @MarkusHallcyon:不要亲自投票 :) 如果我猜的话,社区可能已经投票了,因为问题中使用的术语不清楚或模棱两可,而且很难准确辨别你想要做什么。老实说,我有点猜到你在问什么。但我很高兴我能提供帮助:)
  • 提问的本质是模棱两可的。
猜你喜欢
  • 1970-01-01
  • 2022-01-04
  • 2016-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
相关资源
最近更新 更多