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
Linda Hamiltonasal
2024-11-29 20:33:10723semak imbas

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
        }
    }

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);

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!

Kenyataan:
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