Salinan kode adalah sebagai berikut:
function foo ()
{
}
setInterval ("foo ()", 1000);
Jika Anda menggunakan teknologi OO, Anda dapat melakukan ini.
Salinan kode adalah sebagai berikut:
// konstruktor
fungsi myobj
{
function foo ()
{
waspada (this.data);
}
this.timer = foo;
this.data = "halo";
setInterval ("this.timer ()", 1000);
}
berfungsi lain ()
{
// Buat timer saat membuat objek
var obj = myobj baru ();
}
Namun, itu tidak berfungsi seperti yang Anda pikirkan. Alasannya adalah bahwa fungsi setInterval () tidak mengenali variabel ini. Metode solusi dapat melakukan ini.
Salinan kode adalah sebagai berikut:
berfungsi lain ()
{
var obj = nw myobj ();
setInterval ("obj.timer ()", 1000);
}
Jelas, itu berfungsi dengan benar, tetapi jika Anda seorang perfeksionis, Anda tidak akan senang dengannya. Untungnya, tindakan ini dapat dimasukkan ke dalam konstruktor, dengan sedikit perubahan bentuk.
Salinan kode adalah sebagai berikut:
// konstruktor
fungsi myobj
{
function foo ()
{
waspada (this.data);
}
this.timer = foo;
this.data = "halo";
var self = ini;
setInterval (function () {self.timer ();}, 1000);
}
berfungsi lain ()
{
var obj = myobj baru ();
}
Oke, dengan menggunakan penutupan, tidak apa -apa. Adapun alasannya, saya ingin memberi pembaca pemikiran untuk diri mereka sendiri.
Akhirnya, berikan contoh berbagai kasus uji.
Salinan kode adalah sebagai berikut:
<Html>
<head>
<title>
Halo timer
</title>
<bahasa skrip = "jscript">
/*
* Ada 3 kelas.
*
* 1. Timer dapat berjalan dan hasilnya baik -baik saja
* 2. Timer dapat berjalan dan hasilnya salah
* 3. Timer tidak bisa berjalan
*
*/
fungsi obj ()
{
function foo ()
{
waspada (this.timer);
}
this.timer = foo;
//
var me = ini;
var f = function () {me.timer (); };
var f2 = function () {this.timer (); };
// Kelas 1
// setInterval (f, 1000);
// Kelas 3
// setInterval (F2, 1000);
// Kelas 2
// setInterval (Me.timer, 1000);
// setInterval (this.timer, 1000);
// setInterval (foo, 1000);
// Kelas 3
// setInterval ("this.timer ()", 1000);
// setInterval ("me.timer ()", 1000);
// setInterval ("foo ()", 1000);
}
var o = null;
fungsi onsclick ()
{
o = Obj baru ();
// Kelas 1
// setInterval ("o.timer ()", 1000);
setInterval (function () {o.timer ();}, 1000);
// Kelas 2
// setInterval (O.timer, 1000);
}
</script>
</head>
<body>
<input type = "tombol" ontClick = "ontClick ()" value = "Click Me"> </input>
</body>
</html>