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.
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.
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!