js中setTimeout 的使用

2022-01-11 09:13:44 字數 2125 閱讀 6825

settimeout  在執行時,是在載入後延遲指定時間後,去執行一次表示式,僅執行一次

settimeout 在執行時,它從載入後,每隔指定的時間就執行一次表示式

1,基本用法:

執行一段**:

var i=0;

settimeout("i+=1;alert(i)",1000);

執行乙個函式:

var i=0;

settimeout(function(),1000);

//注意比較上面的兩種方法的不同。

下面再來乙個執行函式的:

var i=0;

function test()

settimeout("test()",1000);

也可以這樣:

settimeout(test,1000);

總結:settimeout的原型是這樣的:

itimerid = window.settimeout(vcode, imilliseconds [, slanguage])

settimeout有兩種形式

settimeout(code,interval)

settimeout(func,interval,args)

其中code是乙個字串

func是乙個函式.

注意"函式"的意義,是乙個表示式,而不是乙個語句.

比如你想週期性執行乙個函式

function a()

可寫為settimeout("a()",1000)

或settimeout(a,1000)

這裡注意第二種形式中,是a,不要寫成a(),切記!!!

展開來說,不管你這裡寫的是什麼,如果是乙個變數,一定是乙個指向某函式的變數;如果是個函式,那它的返回值就  要是個函式

2,用settimeout實現setinterval的功能

思路很簡單,就是在乙個函式中呼叫不停執行自己,有點像遞迴

var i=0;

function xilou()

settimeout("xilou()",1000);

//用這個也可以

//settimeout(xilou,1000);

}3,在類中使用settimeout

終於到正題了,其實在類中使用大家遇到的問題都是關於this的,只要解決了這個this的問題就萬事無憂了。

呵呵。讓我們來分析一下:

function xilou()

xilou.prototype.count=function()

//下面用四種方法測試,乙個乙個輪流測試。

settimeout("this.count()",1000);//a:當下面的x.count()呼叫時會發生錯誤:物件不支援此屬性或方法。

settimeout("count()",1000);//b:錯誤顯示:缺少物件

settimeout(count,1000);//c:錯誤顯示:'count'未定義

//下面是第四種

var self=this;

settimeout(function(),1000);//d:正確

}var x=new xilou();

x.count();

錯誤分析:

a:中的this其實指是window物件,並不是指當前例項物件

b:和c:中的count()和count其實指的是單獨的乙個名為count()的函式,但也可以是window.count(),因為window.count()可以省略為count()

d:將變數self指向當前例項物件,這樣js解析引擎就不會混肴this指的是誰了。

話說回來,雖然我們知道settimeout("this.count()",1000)中的this指的是window物件,但還是不明白為什麼會是

window物件^_^(有點頭暈...)

那我們可以想象一下這個settimeout是怎樣被定義的:

settimeout是window的乙個方法,全稱是這樣的:window.settimeout()

那應該是這樣被定義的:

window.settimeout=function(vcode, imilliseconds [, slanguage])

所以當向settimeout()傳入this的時候,當然指的是它所屬的當前物件window了。

js 中 setTimeout 的用法

settimeout 在執行時,是在載入後延遲指定時間後,去執行一次表示式,僅執行一次 settimeout 在執行時,它從載入後,每隔指定的時間就執行一次表示式 1,基本用法 執行一段 var i 0 settimeout i 1 alert i 1000 執行乙個函式 var i 0 setti...

js 中 setTimeout 的用法

settimeout 在執行時,是在載入後延遲指定時間後,去執行一次表示式,僅執行一次 settimeout 在執行時,它從載入後,每隔指定的時間就執行一次表示式 1,基本用法 執行一段 var i 0 settimeout i 1 alert i 1000 執行乙個函式 var i 0 setti...

js 中 setTimeout 的用法

settimeout 在執行時,是在載入後延遲指定時間後,去執行一次表示式,僅執行一次 settimeout 在執行時,它從載入後,每隔指定的時間就執行一次表示式 1,基本用法 執行一段 var i 0 settimeout i 1 alert i 1000 執行乙個函式 var i 0 setti...