Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Mengakses Contoh Objek yang Betul Dalam Panggilan Balik `setInterval` dalam JavaScript?

Bagaimanakah Saya Boleh Mengakses Contoh Objek yang Betul Dalam Panggilan Balik `setInterval` dalam JavaScript?

Linda Hamilton
Lepaskan: 2024-11-29 20:33:10
asal
652 orang telah melayarinya

How Can I Access the Correct Object Instance Within a `setInterval` Callback in JavaScript?

Mengakses ini daripada Within setInterval dalam JavaScript

Apabila bekerja dengan setInterval() dalam JavaScript, ia boleh menjadi mencabar untuk mengakses contoh yang betul objek dari dalam fungsi panggil balik. Isu ini timbul apabila fungsi panggil balik ialah kaedah objek dan kata kunci ini tidak merujuk kepada contoh yang diingini disebabkan oleh cara JavaScript mengendalikan pengendalian acara.

Untuk mengatasi had ini, mari kita terokai penyelesaian yang menggunakan kaedah bind() untuk mengikat fungsi panggil balik kepada contoh objek yang betul.

Pertimbangkan perkara berikut contoh:

prefs: null,
startup : function()
    {
        // init prefs
        ...
        this.retrieve_rate();
        this.intervalID = setInterval(this.retrieve_rate, this.INTERVAL);
    },

retrieve_rate : function()
    {
        var ajax = null;
        ajax = new XMLHttpRequest();
        ajax.open('GET', 'http://xyz.example', true);
        ajax.onload = function()
        {
            // access prefs here
        }
    }
Salin selepas log masuk

Dalam contoh ini, matlamatnya ialah untuk mengakses sifat prefs objek dari dalam pengendali onload permintaan AJAX. Walau bagaimanapun, kelakuan lalai JavaScript menyebabkan perkara ini merujuk kepada objek tetingkap dalam fungsi onload.

Untuk menyelesaikan isu ini, kita boleh menggunakan kaedah bind() untuk mengikat fungsi retrieve_rate kepada contoh objek semasa. Ini memastikan bahawa apabila fungsi onload digunakan, kata kunci ini akan merujuk kepada objek yang betul.

this.intervalID = setInterval(this.retrieve_rate.bind(this), this.INTERVAL);
Salin selepas log masuk

Dengan mengubah suai kod dengan cara ini, kami memastikan bahawa ini merujuk kepada contoh objek yang betul apabila onload fungsi dipanggil, membolehkan kami mengakses harta prefs seperti yang dikehendaki.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Contoh Objek yang Betul Dalam Panggilan Balik `setInterval` dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan