多次执行命令,无需循环javascript

时间:2015-01-18 01:13:01

标签: javascript

是否有一个可以用来多次执行命令的函数......

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

这样我就可以在没有重复的情况下做到这一点。

有没有办法用预设功能来消除冗余呢?

3 个答案:

答案 0 :(得分:2)

“预设功能”只是一种形式的循环。你可以使用Coffeescript的理解:

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

http://coffeescript.org/#loops

但那仍然是一个循环:)

某些语言(如Ruby)具有类似

的结构
10.times do { puts 'hi' }

不幸的是,JS中没有相同的内容。

答案 1 :(得分:2)

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);

答案 2 :(得分:1)

使用Underscore.js(website)(GitHub),您可以使用times():

function sayHi() {
    alert('hi');
}

_.times(3, sayHi);