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

来源:-

咕咕问

2016-12-07 16:06

这个问什么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>




写回答 关注

1回答

  • 凌红飞
    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); 


原生 JS 实现帧动画库

了解如何用原生JS实现酷炫的帧动画,吸引他她的注意

47184 学习 · 92 问题

查看课程

相似问题