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

问题描述:

如果我有这样的功能:如何编程一个函数的输出以输入另一个函数的输入?

var danger = 1; 

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

...我怎么做“警报(”停止“)”或任何其他输出这样的触发,并提供表达输入的东西就像一个开关声明?那么我可以引发一系列后果的连锁反应?谢谢!

+1

我相信你正在寻找*提示*? - https://developer.mozilla.org/pt-BR/docs/Web/API/window.prompt – LcSalazar 2014-09-18 19:54:20

你在这里混合关注。一个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); 

问题是,有很多方法来构造你的代码,这样一个func的结果可以由另一个功能使用。

+0

我不认为这就是他的意思......问题说*输入另一个*的输入。我相信他想要一个*提示* – LcSalazar 2014-09-18 19:56:04

+0

@LcSalazar:可能,虽然在这种情况下,它是非常模糊的描述。我不会提示“输出一个函数”。 – David 2014-09-18 19:59:47

+0

是的,这正是我所期待的,非常感谢!我的意思是使用“alert()”或任何其他输出作为触发器。不知道为什么这得到-2分,我想我怎么知道我想要做什么而不回答我自己的问题?这个网站真的不是初学者友好的。非常感谢! – 2014-09-18 20:58:34