时间:2021-05-25
复制代码 代码如下:
function foo()
{
}
setInterval( "foo()", 1000 );
如果使用OO的技术,可以这样,
复制代码 代码如下:
// constructor
function MyObj
{
function foo()
{
alert( this.data );
}
this.timer = foo;
this.data = "Hello";
setInterval( "this.timer()", 1000 );
}
function Another()
{
// create timer when create object
var obj = new MyObj();
}
但是,它并不能像你想像的那样工作。原因在于setInterval()这个函数并不能识别this这个变量。一个workaround 的方法可以这样。
复制代码 代码如下:
function Another()
{
var obj = nw MyObj();
setInterval( “obj.timer()”, 1000 );
}
显然,它可以正确工作,但如果你是一个完美主义者,你就不会对它满意。幸运的是,可以将这个动作放到构造函数中去,形式上有点变化。
复制代码 代码如下:
// constructor
function MyObj
{
function foo()
{
alert( this.data );
}
this.timer = foo;
this.data = "Hello";
var self = this;
setInterval( function() { self.timer(); }, 1000 );
}
function Another()
{
var obj = new MyObj();
}
OK, 通过使用一个闭包,就可以了。至于其中的原因,我想给读者自己去思考。
最后,给一个各种测试case的例子。
复制代码 代码如下:
<html>
<head>
<title>
Hello Timer
</title>
<script language = "JScript">
/*
* There are 3 classes.
*
* 1. timer can run and result is ok
* 2. timer can run and result is wrong
* 3. timer can not run
*
*/
function Obj()
{
function foo()
{
alert( this.timer );
}
this.timer = foo;
//
var me = this;
var f = function() { me.timer(); };
var f2 = function() { this.timer(); };
// 1st class
//setInterval( f, 1000 );
// 3rd class
//setInterval( f2, 1000 );
// 2nd class
//setInterval( me.timer, 1000 );
//setInterval( this.timer, 1000 );
//setInterval( foo, 1000 );
// 3rd class
//setInterval( "this.timer()", 1000 );
//setInterval( "me.timer()", 1000 );
//setInterval( "foo()", 1000 );
}
var o = null;
function OnClick()
{
o = new Obj();
// 1st class
//setInterval( "o.timer()", 1000 );
setInterval( function() { o.timer(); }, 1000 );
// 2nd class
//setInterval( o.timer, 1000 );
}
</script>
</head>
<body>
<input type = "button" onclick = "OnClick()" value = "Click me"></input>
</body>
</html>
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文通过一个实例讲解了在Silverlight中使用定时器(Timer)的功能。Timer定时器经常用于每隔一段特定的时间后触发某一指定的事件,如刷新、定时提醒
ok,不废话了,实现一个javascript的Timer吧比起as3的Timer类,功能上略有改动timer2.src.js复制代码代码如下:/***Timer
前言学习JavaScript的同学都知道,AJAX(asyncjavascriptandxml)翻译叫做异步的JavaScript和XML,在原生js中使用发送
在实际应用中,我们经常需要使用定时器去触发一些事件。Python中通过线程实现定时器timer,其使用非常简单。看示例:importthreadingdeffu
一、go代码中使用C代码go代码中使用C代码,在go语言的函数块中,以注释的方式写入C代码,然后紧跟import“C”即可在go代码中使用C函数代码示例:go代