我一直坚持这个作业:
创建一个通用函数,输出一行倒计时 网页,然后是警报,并接收要输出的数据 输入参数。
使用该功能输出倒计时的每一行和一个警报 请注意,您正在输出倒计时到浏览器 窗口这次,不要发出警报! 警报仅用于指示何时输出下一行
我需要帮助来解决一个只传递一个参数然后可以被调用13次的泛型函数。写一个输出倒计时数字部分的for循环。
答案 0 :(得分:0)
如果我理解正确,你想创建一个允许你传递数据的函数,然后你可以调用该函数来逐行输出数据。
要做到这一点,这种方式是不可能的,但这种方法几乎是一样的:
function createOutputFunction(dataArray)
{
return function() {
document.write(dataArray.shift()); // This writes the first element of the dataArray to the browser
};
}
//It can then be used like this
outputFunction = createOutputFunction(["Banana", "Mango", "Apple"]);
outputFunction();
outputFunction();
outputFunction();
" createOutputFunction"函数返回一个可以读取" dataArray"的函数。变量并在每次调用时打印其第一个元素。
答案 1 :(得分:0)
我认为这里的关键是他们要求" Generic"。
这意味着除了它正在做的事情之外,它不需要知道任何事情。 它也 通常 意味着它不应该记住上次做了什么,或者下次做什么时做的事情。'被称为(除非您正在编写专门用于记忆的通用结构)。
现在,规范的措辞很差,但是一个通用的功能:
比你想象的要简单得多。
var writeInputAndAlert = function (input) {
// never, ever, ***ever*** use .write / .writeLn in the real world
document.writeLn(input);
window.alert("next");
};
如果我是您的老师,我会重写window.alert
来处理 非通用 部分。
它是非通用的,因为它知道程序的规则,它会记住你的位置,以及你去往的地方。
var countFrom = 100,
currentCount = countFrom,
countTo = 0;
var nextCount = function () {
currentCount -= 1;
if (currentCount >= countTo) { writeInputAndAlert(currentCount); }
};
window.alert = nextCount;
var countdownArray = ["ten", "nine", "eight", "Ignition Start", "Lift Off", "We have Lift Off"],
i = 0, end = countdownArray.length, text = "",
printAndAlert = function (item) {
alert();
document.write(item);
};
for (; i < end; i += 1) {
text = countdownArray[i];
printAndAlert(text);
}
这真的不需要比这更难
printAndAlert
是一个通用函数,它接受一个输入,写入输入并触发警报
您可以在for
循环内调用它,并在数组中使用每个值
这就是它的全部内容。