Heim  >  Artikel  >  Web-Frontend  >  Beispiel für die Verwendung eines Timers in JavaScript_Javascript-Tipps

Beispiel für die Verwendung eines Timers in JavaScript_Javascript-Tipps

WBOY
WBOYOriginal
2016-05-16 16:49:311464Durchsuche
Code kopieren Der Code lautet wie folgt:

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

Wenn Sie OO-Technologie verwenden, können Sie dies tun,
Kopieren Code Der Code lautet wie folgt:

// Konstruktor
function MyObj
{
function foo()
{
alert( this.data );

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

setInterval( "this.timer()" , 1000 );
}

function Another()
{
/ timer erstellen, wenn Objekt erstellt wird
var obj = new MyObj(

}

Allerdings funktioniert es nicht so, wie Sie denken. Der Grund dafür ist, dass die Funktion setInterval() die Variable this nicht erkennt. Ein Workaround-Ansatz könnte wie folgt aussehen.

Code kopieren Der Code lautet wie folgt:
function Another()
{
var obj = nw MyObj();
setInterval( "obj.timer()", 1000 );
}

Natürlich kann es korrekt funktionieren, aber wenn Sie es sind ein Perfektionist Sonst wirst du damit nicht zufrieden sein. Glücklicherweise können Sie diese Aktion mit einer geringfügigen Änderung der Form in den Konstruktor einfügen.

Code kopieren Der Code lautet wie folgt:
// Konstruktor
Funktion MyObj
{
function foo()
{
alert( this.data );

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

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

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

}


OK, mit einem Abschluss, das war's. Was die Gründe angeht, möchte ich es den Lesern überlassen, selbst darüber nachzudenken.
Geben Sie abschließend ein Beispiel für verschiedene Testfälle.



Code kopieren Der Code lautet wie folgt: head>
<div class="codebody" id="code8425"> Klassen.
*
* 1. Timer kann laufen und Ergebnis ist ok
* 2. Timer kann laufen und Ergebnis ist falsch
* 3. Timer kann nicht laufen
*
* /

function Obj()
{
function foo()
{
alert( this.timer );

this.timer = foo;

//
var me = this;
var f = function() { me.timer( }; ); ;

// 1. Klasse
//setInterval( f, 1000 ); 2. Klasse
//setInterval( me.timer, 1000);
//setInterval( foo, 1000); 🎜>/ /setInterval( "this.timer()", 1000 );
//setInterval( "me.timer()", 1000 ); ;
}

var o = null;

function OnClick()
{
o = new Obj(
// 1. Klasse
//setInterval ( "o.timer()", 1000 );
setInterval( function() { o.timer(); }, 1000 ); .timer, 1000 );
}


OnClick() " value = "Klick mich">



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Prinzipien und Beispiele für domänenübergreifende Ajax-Anforderungen von jquery_jqueryNächster Artikel:Prinzipien und Beispiele für domänenübergreifende Ajax-Anforderungen von jquery_jquery

In Verbindung stehende Artikel

Mehr sehen