Javascript 如何使此函数在一段时间内执行此操作

Javascript 如何使此函数在一段时间内执行此操作,javascript,arrays,module,innerhtml,charat,Javascript,Arrays,Module,Innerhtml,Charat,我试图得到第一个函数,重复运行。就像在第二个函数中一样。我应该去哪里看看 (function printLetterByLetter() { var i = 0; var destination = "comment"; var RandomComment = [ "Did you choose that outfit?" , "I like trains."]; var message = RandomComment[Math.floo

我试图得到第一个函数,重复运行。就像在第二个函数中一样。我应该去哪里看看

     (function printLetterByLetter() {
    var i = 0;
    var destination = "comment";
    var RandomComment = [
    "Did you choose that outfit?"
    , "I like trains."];
    var message = RandomComment[Math.floor(Math.random() * RandomComment.length)];
    var typewriter = function () {
        document.getElementById(destination).innerHTML += message.charAt(i);
        i++;
        if (i > message.length) {
            clearInterval(typespeed);
        }
    }
    var speed = 60;
    var typespeed = setInterval(typewriter, speed)
}());



(function printLetterByLetter() {
     var destination = "comment";
     var frequency = 1000;
     var RandomComment = [
        "Did you choose that outfit?"
        , "I like trains."];
     var RandomCommentTimer = setInterval(function () {
        var message = RandomComment[Math.floor(Math.random() * RandomComment.length)];

    }, frequency)
}());
所以我想做的是创建一个函数/模块,以设定的速度(第一个函数)键入一条随机注释。在设定的时间后,注释将消失,并键入新的注释(第二个函数)。就像第二个函数一样,这将继续。 到目前为止,我自己还没有成功,所以我想:让我们看看是否有人能在stackoverflow上帮助我


如果有人能给你一个建议去哪里看,那也是最受欢迎的。

你可以在函数外部设置和更改函数参数,然后在函数内部访问它们。需要注意的是,在设置它们时,不能将
var
放在前面。如果不将var放在前面,则可以在当前范围之外访问它

destination = "comment";
frequency = 6000;
(function printLetterByLetter() {
//now you have access to destination and frequency as they are defined before the function is called
var RandomComment = [
"Did you choose that outfit?"
, "I like trains."];
var RandomCommentTimer = setInterval(function () {
    var message = RandomComment[Math.floor(Math.random() * RandomComment.length)];
    document.getElementById(destination).innerHTML = message;
}, frequency)
}());

不确定问题是什么?您的第二个IIFE是不寻常的,因为参数(目标等)将是未定义的(因为您在调用中没有为它们赋值),并且您在IIFE的主体中声明了同名的变量。其次,它们都输出到
#comment
-那么,您认为运行它们(作为单独的“函数”或单个函数)将如何工作?这两个函数本质上是相同的,唯一的区别是
RandomComment
数组中的消息。你想如何将它们结合起来?有更多的评论,我从数组中提取了一些,因此文章会更短。我最终想要的是一个函数,它完成了这两个函数现在分别完成的两件事。是的,谢谢,这看起来确实更好。但这不是我被困的地方。