ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript window.setTimeout()の詳しい使い方_基礎知識

JavaScript window.setTimeout()の詳しい使い方_基礎知識

WBOY
WBOYオリジナル
2016-05-16 18:42:412285ブラウズ

setTimeout (式、遅延時間)
setTimeout (式、インタラクション時間)
遅延時間/インタラクション時間はミリ秒単位です (1000ms=1s) setTimeout は実行中にロードされます 指定された時間を遅延させた後、式を 1 回だけ実行します一度
setTimeout 実行すると、読み込み以降、指定された時間ごとに式

1 が実行されます。
コードを実行します:

コードをコピーします コードは次のとおりです:

var i=0;
setTimeout("i =1;alert(i)", 1000);

関数を実行します:
コードをコピーします コードは次のとおりです:

var i=0;
setTimeout(function(){i =1;alert(i);},1000);

//上記の 2 つの方法の違い。

ここに別の実行関数があります:
コードをコピーします コードは次のとおりです:

var i=0;
関数 test(){
i =1;
}
setTimeout("test()",1000);

は次のようにすることもできます:

コードをコピー コードは次のとおりです:
setTimeout(test,1000);

概要:
setTimeout のプロトタイプは次のとおりです:
iTimerID = window.setTimeout(vCode, iMilliSeconds [, sLanguage ])

setTimeout 2 つの形式があります

setTimeout(code,interval)
setTimeout(func,interval,args)

code は文字列
func は関数です。

「関数」の意味はステートメントではなく式であることに注意してください。
たとえば、関数を定期的に実行する場合は、
function a(){
//...
}
は、
setTimeout("a()",1000)
または
setTimeout(a,1000)

として記述できます。ここで、2 番目の形式では a であることに注意してください。a() とは書かないでください。
ここに何を書いても、展開するには変数である必要があります。特定の関数を指す; それが関数である場合、その戻り値は次でなければなりません。それは関数です

2. setTimeout を使用して setInterval
の関数を実装します。アイデアは非常に単純です。再帰に似た、継続的に自身を実行する関数内の関数

コードをコピー コードは次のとおりです:
var i=0;
function xilou(){
i =1;
if( i>10){alert(i);return;}
setTimeout("xilou ()",1000);
//これも使用できます
//setTimeout(xilou,1000);
}

3. クラスで setTimeout を使用します
ついに本題に到達しました。実際、授業で使用するときに誰もが遭遇する問題は、この問題が解決されていれば、心配する必要はありません。
ははは。それを分析してみましょう:

コードをコピーします コードは次のとおりです:
function xilou(){

this.name="xilou";
this.sex="男性";
}
xilou.prototype.count=function() {
this.num =1;
alert(this.num);
if(this.num>10){return;}
//以下の 4 つのメソッドを 1 つずつ使用してテストします。振り向く 。
setTimeout("this.count()",1000);//A: 次の x.count() が呼び出されるときにエラーが発生します: オブジェクトはこのプロパティまたはメソッドをサポートしていません。
setTimeout("count()",1000);//B: エラー表示: オブジェクトがありません
setTimeout(count,1000);//C: エラー表示: 'count' が定義されていません
/ / 以下は 4 番目の型です
var self=this;
setTimeout(function(){self.count();},1000);//D: 正しい

}

var x=new xilou();
x.count();
エラー分析:
A: のこれは、実際には現在のインスタンス オブジェクトではなく、ウィンドウ オブジェクトを参照します。
B: と C: の count() と count は、実際には The function of という名前の別のオブジェクトを参照します。 count() ですが、window.count() にすることもできます。window.count() は count() として省略できるためです。
D: 変数 self を現在のインスタンス オブジェクトにポイントすることで、JS 解析エンジンがこれは誰のことを指しますか?

とはいえ、setTimeout("this.count()",1000) の this が wi​​ndow オブジェクトを参照していることはわかっていますが、なぜそれが
window オブジェクトなのかはまだ理解できません^ _^ (少しめまいがします...)
次に、この setTimeout がどのように定義されているかを想像できます:
setTimeout は window のメソッドで、完全な名前は次のようになります: window.setTimeout()
これは次のとおりです。
コードをコピー コードは次のとおりです:

window.setTimeout =function(vCode, iMilliSeconds [ , sLanguage]){
//....コード
return timer//マーカーを返します
}

これが渡されるとsetTimeout() の時間は、もちろん、それが属する現在のオブジェクト ウィンドウを指します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。