为了账号安全,请及时绑定邮箱和手机立即绑定

为什么setInterval 只执行了一次??

为什么setInterval 只执行了一次??

侃侃尔雅 2018-12-07 07:24:34
代码如下 <script language=javascript>    $(function () {        var test = {           deg: function (type) {            alert(type);              }          }         setInterval(test.deg(12), 1000);      });</script> 求高手指点
查看完整描述

11 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

setInterval(function () { test.deg(12)}, 1000);这样就可以了

查看完整回答
反对 回复 2018-12-24
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

改了后没有任何效果了

查看完整回答
反对 回复 2018-12-24
?
BIG阳

TA贡献1859条经验 获得超6个赞

@MY NEW START: console.log是输入日志,打开浏览器调试工具可以看到。或者你把console.log换成你之前的alert

查看完整回答
反对 回复 2018-12-24
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

要么用function包裹,要么用字符串方式。或者用new Function("");

查看完整回答
反对 回复 2018-12-24
?
墨色风雨

TA贡献1853条经验 获得超6个赞

两种方式

1. window.setInterval(function(){test.deg(12)}, 1000);

2. var foo2 = new Function("return test.deg(12)");
         setInterval(foo2, 1000);

 

setInterval 第一个参数是函数引用。

 

查看完整回答
反对 回复 2018-12-24
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

 setInterval(fun, timeout)

参数类型分别是fun:一个函数

timeout:时间。

你传的是空。你可以写为:setInterval(function(){test.deg(12)}, 1000);

查看完整回答
反对 回复 2018-12-24
?
慕的地10843

TA贡献1785条经验 获得超8个赞

和使用了type这个词有没有关系

查看完整回答
反对 回复 2018-12-24
?
九州编程

TA贡献1785条经验 获得超4个赞

         setInterval(code,millisec[,"lang"])。code是要执行的代码,你写的setInterval(test.deg(12), 1000)这样是不对的,应该写成setInterval(方法名, 1000),你要明白,方法加上括号都是马上执行的,这点你可以用setTimeout方法证明一下,它并没有延时执行而是马上执行的;你还有个错的地方是,setInterval是周期性的做重复的动作,你传参数的方法不适用setInterval和settimeout。

查看完整回答
反对 回复 2018-12-24
?
qq_笑_17

TA贡献1818条经验 获得超7个赞

<script language=javascript>
    $(function () {
        var test = {
           deg: function (type) {
            alert(type);
              }
          }
         setInterval("test.deg(12)", 1000);
      });
</script>

 

 

*注:传参数时,必须是一个字符串,但这种有一个弊端,不能动态改变参数的值

查看完整回答
反对 回复 2018-12-24
  • 11 回答
  • 0 关注
  • 693 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信