Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengulang Dengan Selamat Melalui Sifat Objek dalam JavaScript?

Bagaimanakah Saya Boleh Mengulang Dengan Selamat Melalui Sifat Objek dalam JavaScript?

Linda Hamilton
Linda Hamiltonasal
2025-01-03 05:58:46996semak imbas

How Can I Safely Iterate Through Object Properties in JavaScript?

Memeriksa Sifat Objek: Mengulangi melalui Sifat

Dalam coretan kod yang diberikan, gelung for-in berulang pada sifat objek obj. Nama setiap sifat diberikan kepada propt pembolehubah dan nilainya diakses sebagai obj[propt].

Walau bagaimanapun, butiran penting yang perlu diambil perhatian ialah propt bukanlah kaedah atau sifat objek terbina dalam. Sebaliknya, ia hanyalah pembolehubah yang mengambil nama setiap sifat semasa lelaran gelung.

Kepentingan Pemeriksaan hasOwnProperty

Menyalurkan sifat objek menggunakan gelung untuk masuk memerlukan keselamatan tambahan semak: Object.prototype.hasOwnProperty.call(obj, prop).

Semakan ini perlu kerana objek dalam JavaScript mewarisi sifat daripada prototaip kelas asasnya. Oleh itu, objek mungkin memiliki sifat yang tidak ditakrifkan secara eksplisit, tetapi diwarisi daripada kelas asas.

Untuk mengelak daripada menyertakan sifat yang diwarisi dalam gelung, semakan hasOwnProperty menentukan sama ada harta tertentu dimiliki secara khusus kepada objek diulang dan bukan kepada prototaip yang diwarisi.

Alternatif hasOwnProperty Sintaks

Daripada menggunakan Object.prototype.hasOwnProperty.call(obj, prop), anda juga boleh menggunakan hasOwnProperty secara langsung pada objek itu sendiri:

if (obj.hasOwnProperty(prop)) {
    // Do stuff
}

Walau bagaimanapun, pendekatan ini boleh membawa kepada ralat jika objek itu sendiri mempunyai harta bernama hasOwnProperty. Untuk mengelakkan ini, adalah disyorkan untuk menggunakan sintaks Object.prototype.hasOwnProperty.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengulang Dengan Selamat Melalui Sifat Objek 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