Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Menambah Kaedah Prototaip pada Tatasusunan dan Objek Tanpa Menjejaskan Gelung `untuk...dalam`?

Bagaimanakah Saya Boleh Menambah Kaedah Prototaip pada Tatasusunan dan Objek Tanpa Menjejaskan Gelung `untuk...dalam`?

Barbara Streisand
Lepaskan: 2024-12-10 09:25:09
asal
989 orang telah melayarinya

How Can I Add Prototype Methods to Arrays and Objects Without Affecting `for...in` Loops?

Mengakses Kaedah Prototaip tanpa Menghalang Lelaran

Walaupun memanjangkan Array.prototype dan Object.prototype dengan kaedah pembantu adalah amalan biasa, kaedah ini sering muncul semasa gelung untuk masuk, berpotensi menyebabkan masalah. Untuk mengelakkan ini, pembangun boleh menghalang kaedah daripada muncul dalam gelung sedemikian dengan menetapkannya sebagai tidak boleh dikira.

Penyelesaian: Sifat Tidak Boleh Dihitung

EcmaScript 5.1 memperkenalkan kaedah Object.defineProperty(), yang boleh digunakan untuk mentakrifkan sifat tidak boleh dikira. Dengan menggunakan kaedah ini, pembangun boleh menetapkan atribut kaedah yang boleh dikira kepada palsu, menjadikannya tidak kelihatan kepada gelung untuk-dalam.

Contoh berikut menunjukkan cara untuk mentakrifkan kaedah tidak terhitung yang dipanggil "cari" pada Array.prototype:

Object.defineProperty(Array.prototype, "find", {
    enumerable: false,
    writable: true,
    value: function(testFun) {
        // Code to find element in the array
    }
});
Salin selepas log masuk

Dengan takrifan ini, kaedah cari boleh digunakan seperti yang dimaksudkan, tetapi ia tidak akan muncul dalam gelung untuk masuk, memastikan bahawa gelung hanya berulang pada nilai tatasusunan sebenar.

Nota: Penyelesaian ini tidak disokong dalam pelayar lama yang tidak menyokong EcmaScript 5.1. Untuk penyemak imbas ini, pembangun boleh menggunakan perpustakaan shim seperti es5-shims untuk menyediakan keserasian. Selain itu, kaedah forEach(), yang tersedia dalam penyemak imbas moden, boleh digunakan sebagai alternatif kepada gelung for-in untuk lelaran pada tatasusunan tanpa menemui kaedah prototaip.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menambah Kaedah Prototaip pada Tatasusunan dan Objek Tanpa Menjejaskan Gelung `untuk...dalam`?. 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