JavaScript如何控制函数的执行次数。
var foo = function(){alert('called!')};
time(foo,2);
foo();//弹出called
foo();//弹出called
foo();//do nothing
time 的第一个参数是传入一个函数 第二参数是函数执行的次数 就是如何控制传入的函数的执行次数?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
var foo = (function (){
var i = 0;
return function (){
}
})();
手机敲的,意思到了就行
不返回新的函数的话
估计不对,坐求正解,大神轻喷
var foo = function(){alert('called!')};
function time(foo,count)
{
}
time(foo, 2);
foo();//弹出called
foo();//弹出called
foo();//do nothing
如果要包装的是函数,而不是匿名函数表达式,并且需要改变原函数,可以下面这么写
but,其他情况就像@小_秦 说的,实现不了而且这也不是一个好的解决方案。
DON'T reinvent your own bicycle!
underscorejs
's before function is exactly what you are looking for. here's source code: link君不知道 underscore的
方法吗?
而且也是很简单的吧,朴灵的那本书都实现了好几个呢,嗯,第四章。
经提醒,发现是我理解错了。现在有点忙,有时间再看看。问题关注中~
我怎么就看不懂楼上这些童鞋码代码的时候心里在想啥呢?明明很简单的东西,弄的这么复杂。
function time(fn, count) {
fn();
count --;
if (!count) return;
time(fn, count);
}
测试传送门:runjs根本不需要创建新的Function
对象,也不需要暴露在window
下,就这么一个简单的
递归
就可以做到了,代码逻辑也根本一点不复杂。而且我这只是单纯的把题主的需求
翻译
成代码而已。真不知道楼上各位大神咋想的。。
类似单例模式。