问答详情
源自:-

js关于setInterval 传入类似于对象参数?

这个问什么setInterval没有重复调用函数?

<script type="text/javascript">

function C(){this.test = "abc";}

var c = new C();


C.prototype.xx = function(obj){console.log(obj.test);}

c.xx(c);c.xx(c);c.xx(c);c.xx(c);c.xx(c);c.xx(c);

setInterval(c.xx(c),50);

</script>




提问者:咕咕问 2016-12-07 16:06

个回答

  • 凌红飞
    2017-02-06 16:47:53

    setInterval(c.xx(c),50); 这句话是把函数调用后返回值给了setInterval,第一次调用时,会执行c.xx(c),由于c.xx(c)中没有return任何值,函数默认返回了undefined,当第二次调用时,setInterval的第一个参数就变成了undefined,就不会重复调用了。

    可以把setInterval(c.xx(c),50); 改成setInterval('c.xx(c)',50); 或者setInterval(function(){c.xx(c)},50);