最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在JavaScript中使用timer示例

 更新時間:2014年05月08日 09:18:27   作者:  
這篇文章主要介紹了在JavaScript中如何使用timer,并給出各種測試case的例子,需要的朋友可以參考下
復(fù)制代碼 代碼如下:

function foo()
{
}
setInterval( "foo()", 1000 );

如果使用OO的技術(shù),可以這樣,
復(fù)制代碼 代碼如下:

// 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()這個函數(shù)并不能識別this這個變量。一個workaround 的方法可以這樣。
復(fù)制代碼 代碼如下:

function Another()
{
var obj = nw MyObj();
setInterval( “obj.timer()”, 1000 );
}

顯然,它可以正確工作,但如果你是一個完美主義者,你就不會對它滿意。幸運的是,可以將這個動作放到構(gòu)造函數(shù)中去,形式上有點變化。
復(fù)制代碼 代碼如下:

// 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的例子。
復(fù)制代碼 代碼如下:

<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>

相關(guān)文章

最新評論

运城市| 连南| 栾川县| 栖霞市| 南木林县| 新沂市| 中方县| 惠东县| 嘉峪关市| 屏山县| 开阳县| 吉安市| 大连市| 邯郸县| 成都市| 临朐县| 石柱| 电白县| 罗源县| 文安县| 班戈县| 福安市| 瓮安县| 灵璧县| 通渭县| 乐平市| 吉木乃县| 黔江区| 花莲市| 百色市| 加查县| 通州区| 宜黄县| 剑阁县| 皮山县| 长宁区| 宿州市| 远安县| 澄迈县| 富民县| 崇左市|