如果我有這樣的功能:如何編程一個函數的輸出以輸入另一個函數的輸入?
var danger = 1;
function stepLeft() {
if (danger == 1) {
alert("stop")
} else {
alert("start")
}
}
...我怎麼做「警報(」停止「)」或任何其他輸出這樣的觸發,並提供表達輸入的東西就像一個開關聲明?那麼我可以引發一系列後果的連鎖反應?謝謝!
如果我有這樣的功能:如何編程一個函數的輸出以輸入另一個函數的輸入?
var danger = 1;
function stepLeft() {
if (danger == 1) {
alert("stop")
} else {
alert("start")
}
}
...我怎麼做「警報(」停止「)」或任何其他輸出這樣的觸發,並提供表達輸入的東西就像一個開關聲明?那麼我可以引發一系列後果的連鎖反應?謝謝!
你在這裏混合關注。一個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的結果可以由另一個功能使用。
我相信你正在尋找*提示*? - https://developer.mozilla.org/pt-BR/docs/Web/API/window.prompt – LcSalazar 2014-09-18 19:54:20