cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Ralat dilaporkan apabila setTimeout menggantikan setInterval untuk melaksanakan kira detik

Baru-baru ini, apabila menggunakan vue2 untuk membina projek, saya menghadapi keperluan untuk mengira detik aktif Apabila menggunakan setTimeout untuk mensimulasikan kesan setInterval, sesuatu telah berlaku (sudah tentu, menggunakan yang terakhir boleh menyelesaikan masalah dengan mudah)

let myTimer = setTimeout( () => {
    if (diffTimer > 0) {
        hours = Math.floor(diffTimer/3600);
        minutes = Math.floor((diffTimer/60)%60);
        seconds = Math.floor(diffTimer%60);
        this.hours = hours > 9 ? hours : '0' + hours;
        this.minutes = minutes > 9 ? minutes : '0' + minutes;
        this.seconds = seconds > 9 ? seconds : '0' + seconds;
    } else {
        clearTimeout(myTimer);
    }
    diffTimer--;
    setTimeout(arguments.callee,1000);
},1000)

Hasilnya ialah ralat berikut:

Nampaknya objek hujah tidak dapat ditemui dalam mod ketat es6...

ringa_leeringa_lee2775 hari yang lalu755

membalas semua(1)saya akan balas

  • 高洛峰

    高洛峰2017-05-19 10:40:45

    Objek hujah tidak boleh digunakan apabila menggunakan fungsi anak panah. Objek tidak wujud dalam badan fungsi. Jika anda ingin menggunakannya, anda boleh menggunakan parameter Rehat.

    http://es6.ruanyifeng.com/?se...

    Nota Penggunaan Terdapat beberapa perkara yang perlu diperhatikan apabila menggunakan fungsi anak panah.

    (1) Objek ini dalam badan fungsi ialah objek di mana ia ditakrifkan, bukan objek di mana ia digunakan.

    (2) tidak boleh digunakan sebagai pembina, iaitu, arahan baru tidak boleh digunakan, jika tidak, ralat akan dilemparkan.

    (3) Objek argumen tidak boleh digunakan, kerana objek tidak wujud dalam badan fungsi. Jika anda ingin menggunakannya, anda boleh menggunakan parameter Rehat.

    (4) Perintah hasil tidak boleh digunakan, jadi fungsi anak panah tidak boleh digunakan sebagai fungsi Penjana.

    Di antara empat perkara di atas, perkara pertama amat perlu diberi perhatian. Penunjuk objek ini berubah-ubah, tetapi dalam fungsi anak panah, ia tetap.

    balas
    0
  • Batalbalas