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

代码如下

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

求高手指点

侃侃尔雅
浏览 694回答 11
11回答

阿波罗的战车

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

慕哥9229398

改了后没有任何效果了

BIG阳

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

凤凰求蛊

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

墨色风雨

两种方式 1. window.setInterval(function(){test.deg(12)}, 1000); 2. var foo2 = new Function("return test.deg(12)");         setInterval(foo2, 1000);   setInterval 第一个参数是函数引用。  

拉丁的传说

 setInterval(fun, timeout) 参数类型分别是fun:一个函数 timeout:时间。 你传的是空。你可以写为:setInterval(function(){test.deg(12)}, 1000);

慕的地10843

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

九州编程

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

qq_笑_17

<script language=javascript>    $(function () {        var test = {           deg: function (type) {            alert(type);              }          }         setInterval("test.deg(12)", 1000);      });</script>     *注:传参数时,必须是一个字符串,但这种有一个弊端,不能动态改变参数的值
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript