在没有javascript循环的情况下多次执行命令

execution of commands multiple times without loops javascript

本文关键字:执行 命令 情况下 javascript 循环      更新时间:2023-09-26

有没有一个函数可以让我多次执行命令。。。

alert('hi');
alert('hi');
alert('hi');

这样我就可以不用重复了。

有没有一种方法可以通过预设功能来消除冗余?

"预设功能"只是一个循环,以一种或另一种形式存在。你可以使用Coffeescrapt的理解:

alert('hi') for num in [1..10]

http://coffeescript.org/#loops

但这仍然是一个循环:(

有些语言,如Ruby,具有类似的构造

10.times do { puts 'hi' }

不幸的是,JS中没有同样的功能。

Javascript语言中没有允许您多次重复一个函数的东西,但您可以轻松地创建一个函数来为您做到这一点:

function execMultiple(fn, num, /* args */) {
    // make copy of the args without the first two items
    var args = Array.prototype.slice.call(arguments, 2);
    for (var i = 0; i < num; i++) {
        fn.apply(this, args);
    }
}
execMultiple(alert, 3, 'hi');

或者,您可以要求传入一个已经包含args的存根函数:

function execN(fn, n) {
    for (var i = 0; i < n; i++) {
        fn();
    }
}
execN(function() {
    alert('hi');
}, 3);

使用Undercore.js(网站((GitHub(,您可以使用时间((:

function sayHi() {
    alert('hi');
}
_.times(3, sayHi);