<script>
function repeat(fn, times, delay) {
return function() {
if(times > 0) {
fn.apply(null, arguments);
var args = Array.prototype.slice.call(arguments);
var self = arguments.callee;
setTimeout(function(){
self.apply(null,args);
},delay);
}
}
}
function comms(s) {
// document.write(i +"-------" + "<br/>");
document.write(i+s+"<br/>");
i++;
}
var i=0;
var somethingWrong = repeat(comms, 3, 200);
somethingWrong("Can you hear me, major sg?");
function repeat(fn, times, delay) {
return function() {
if(times > 0) {
fn.apply(null, arguments);
var args = Array.prototype.slice.call(arguments);
var self = arguments.callee;
times-=1;
//把self.apply(null,args);这句话放在settimeout里面执行和放在外面执行效果不同
// self.apply(null,args);setTimeout(function(){
self.apply(null,args);
},delay);
}
}
}
function comms(s) {
// document.write(i +"-------" + "<br/>");
document.write(i+s+"<br/>");
i++;
}
var i=0;
var somethingWrong = repeat(comms, 3, 200);
somethingWrong("Can you hear me, major sg?");
</script>
上面的代码直接放到chrome里面就能运行,现在的现象是打印3次,但是第二次打印的时候覆盖了第一次打印的东西,求大神解答。