代码如下
<script language=javascript>
$(function () {
var test = {
deg: function (type) {
alert(type);
}
}
setInterval(test.deg(12), 1000);
});
</script>
求高手指点
setInterval(function () { test.deg(12)}, 1000);这样就可以了
var test = { deg: function (type) { console.log(type); } }; //test.deg这里传入的函数如果带参数,需要写成如下字符串形式。 setInterval("test.deg(1)", 1000);
改了后没有任何效果了
@MY NEW START: console.log是输入日志,打开浏览器调试工具可以看到。或者你把console.log换成你之前的alert。
@写代码的小2B:
var test = {
deg: function (type) {
alert(type);
}
}
setInterval("test.deg(1)", 1000);
还是没有效果
要么用function包裹,要么用字符串方式。或者用new Function("");
setInterval(test.deg(12), 1000);的第一个参数应该是函数吧,你的这个第一个参数不是函数,试着把test.deg(12)用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);
和使用了type这个词有没有关系
setInterval(code,millisec[,"lang"])。code是要执行的代码,你写的setInterval(test.deg(12), 1000)这样是不对的,应该写成setInterval(方法名, 1000),你要明白,方法加上括号都是马上执行的,这点你可以用setTimeout方法证明一下,它并没有延时执行而是马上执行的;你还有个错的地方是,setInterval是周期性的做重复的动作,你传参数的方法不适用setInterval和settimeout。
<script language=javascript>
$(function () {
var test = {
deg: function (type) {
alert(type);
}
}
setInterval("test.deg(12)", 1000);
});
</script>
*注:传参数时,必须是一个字符串,但这种有一个弊端,不能动态改变参数的值