Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Memanjangkan Prototaip Tatasusunan dan Objek Dengan Selamat Tanpa Memecahkan Gelung Untuk Masuk?

Bagaimanakah Saya Boleh Memanjangkan Prototaip Tatasusunan dan Objek Dengan Selamat Tanpa Memecahkan Gelung Untuk Masuk?

Mary-Kate Olsen
Lepaskan: 2024-12-09 13:40:15
asal
631 orang telah melayarinya

How Can I Safely Extend Array and Object Prototypes Without Breaking For-In Loops?

Memperluas Array dan Prototaip Objek Tanpa Berantakan Untuk Gelung Dalam

Apabila memanjangkan Array.prototype dan Object.prototype dengan kaedah pembantu, ia adalah penting untuk memastikan kaedah ini tidak mengganggu gelung for-in dengan muncul sebagai nilai. Ini amat penting dalam senario di mana kod lain bergantung pada gelung untuk masuk untuk mengakses nilai sahaja.

Elakkan Gelung Untuk-Dalam dengan Tatasusunan

Penyelesaian yang ideal adalah untuk elakkan menggunakan gelung untuk masuk dengan tatasusunan. Sebaliknya, gunakan kaedah lelaran khusus tatasusunan seperti .map() dan .filter() terbina dalam. Elakkan gelung untuk-dalam dalam fungsi generik yang mungkin menghadapi kedua-dua tatasusunan dan objek.

Gunakan hasOwnProperty() dengan Objek

Jika menggunakan gelung untuk-dalam tidak dapat dielakkan dalam generik fungsi, gunakan kaedah hasOwnProperty() untuk mengecualikan sifat yang diwarisi daripada prototaip:

for (var prop in anyObj)
    if (Object.prototype.hasOwnProperty.call(anyObj, prop))
        // do something
Salin selepas log masuk

Sifat Tidak Boleh Dihitung dalam ECMAScript 5.1

Dalam ECMAScript 5.1, anda boleh menetapkan sifat menjadi tidak boleh dikira menggunakan Object.defineProperty():

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

Ini memastikan bahawa "mencari" kaedah tidak akan muncul dalam gelung untuk-dalam. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa pendekatan ini tidak disokong dalam pelayar lama. Pertimbangkan untuk menggunakan shim seperti ES5-shim untuk keserasian.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memanjangkan Prototaip Tatasusunan dan Objek Dengan Selamat Tanpa Memecahkan Gelung Untuk Masuk?. 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