首頁  >  文章  >  web前端  >  在JavaScript中使用timer範例_javascript技巧

在JavaScript中使用timer範例_javascript技巧

WBOY
WBOY原創
2016-05-16 16:49:311419瀏覽
複製程式碼 程式碼如下:

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

如果使用OO的技術,可以這樣,

複製程式碼複製程式碼

程式碼如下:


// constructor
function MyObj
{
function foo()
{
{
function foo()
{
{
function foo()
{
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()
function Another() { var> obj = nw MyObj(); setInterval( “obj.timer()”, 1000 ); }

顯然,它可以正確工作,但如果你是完美主義者,你就不會對它滿意。幸運的是,可以將這個動作放到構造函數中去,形式上有點變化。




複製程式碼


程式碼如下:


// constructor function foo()
{
alert( this.data );
}

this.timer = foo;
this.data = "Hello";

var self = this;
setInterval( function() { self.timer(); }, 1000 );
}

function Another()
}
function Another() { { var obj = new MyObj(); }

OK, 透過使用一個閉包,就可以了。至於其中的原因,我想給讀者自己去思考。

最後,給一個各種測試case的例子。




複製代碼


代碼如下:




<br>Hello Timer <br>
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 ); //setInterval( o.timer, 1000 ); } input>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn