不使用javascript循环多次执行命令
是否有一个函数,我可以使用它多次执行命令不使用javascript循环多次执行命令,javascript,Javascript,是否有一个函数,我可以使用它多次执行命令 alert('hi'); alert('hi'); alert('hi'); 这样我就可以不用再重复了 有没有办法通过预设功能来消除冗余?预设功能只是一个循环,以一种或另一种形式出现。您可以使用Coffeescript的理解: alert('hi') for num in [1..10] 但这仍然是一个循环:) 有些语言,比如Ruby,有一个类似 10.times do { puts 'hi' } 不幸的是,JS中没有相同的功能。Javascri
alert('hi');
alert('hi');
alert('hi');
这样我就可以不用再重复了
有没有办法通过预设功能来消除冗余?预设功能只是一个循环,以一种或另一种形式出现。您可以使用Coffeescript的理解:
alert('hi') for num in [1..10]
但这仍然是一个循环:)
有些语言,比如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');
函数execMultiple(fn,num,/*args*/){
//复制不带前两项的参数
var args=Array.prototype.slice.call(参数,2);
对于(变量i=0;i
或者,您可以要求传入已包含args的存根函数:
function execN(fn, n) {
for (var i = 0; i < n; i++) {
fn();
}
}
execN(function() {
alert('hi');
}, 3);
函数执行器(fn,n){
对于(变量i=0;i
使用下划线.js()(),可以使用times():
循环是最好的选择,你为什么不想使用它们呢?@danielR好吧,如果有更有效的方法,为什么不呢?如果你使用人们不知道的更隐晦的东西而不是循环,你的代码可读性就会降低。谢谢,但它会属于传统循环的范畴吗?(我不反对循环,只是让你知道)是的-在编程上下文中定义循环是一种多次执行某项操作的方法。你可以在上面分层语法和结构来隐藏循环,但是(至少在“可识别”程序的范围内)它仍然是一个循环。这是不正确的。这将只调用
警报()
一次。您必须传递函数引用,而不是执行alert()
的返回结果。让我来解决这个问题。
function sayHi() {
alert('hi');
}
_.times(3, sayHi);