Rumah >hujung hadapan web >tutorial js >Bagaimanakah Gelung `for...in` JavaScript Berulang Melalui Sifat Objek dan Bagaimana Saya Boleh Mengelak Hartanah Diwarisi?

Bagaimanakah Gelung `for...in` JavaScript Berulang Melalui Sifat Objek dan Bagaimana Saya Boleh Mengelak Hartanah Diwarisi?

Susan Sarandon
Susan Sarandonasal
2024-12-25 04:16:17199semak imbas

How Does JavaScript's `for...in` Loop Iterate Through Object Properties and How Can I Avoid Inherited Properties?

Lelaran melalui Sifat Objek

Dalam JavaScript, lelaran melalui sifat objek selalunya dilakukan menggunakan gelung untuk...dalam. Walau bagaimanapun, adalah penting untuk memahami cara gelung ini berfungsi.

Pertimbangkan kod berikut:

var obj = {
    name: "Simon",
    age: "20",
    clothing: {
        style: "simple",
        hipster: false
    }
}

for(var propt in obj){
    console.log(propt + ': ' + obj[propt]);
}

Kod ini merekodkan sifat objek obj menggunakan pembolehubah propt. Tetapi bagaimana propt tahu tentang sifat ini?

Memahami propt

Pembolehubah propt ialah pembolehubah sementara yang mewakili setiap kunci sifat dalam objek obj. Apabila gelung berjalan, ia melelang melalui sifat objek, memperuntukkan setiap kunci sifat untuk propt secara bergilir-gilir.

Ini kerana gelung untuk...dalam bukan kaedah atau sifat terbina. Ia merupakan binaan bahasa yang berulang ke atas sifat terhitung objek.

Semak hasOwnProperty()

Walau bagaimanapun, terdapat kemungkinan isu dengan pendekatan ini. Secara lalai, for...in loops juga berulang ke atas sifat yang diwarisi daripada rantai prototaip objek. Untuk mengelakkan ini, adalah disyorkan untuk menambah semakan hasOwnProperty() pada gelung, seperti:

for (var prop in obj) {
    if (Object.prototype.hasOwnProperty.call(obj, prop)) {
        // do stuff
    }
}

Semakan ini memastikan bahawa hanya sifat khusus untuk objek obj disertakan dalam gelung.

Sebagai alternatif, kaedah hasOwnProperty() boleh dipanggil terus pada objek:

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

Pendekatan ini ialah lebih selamat, terutamanya apabila objek termasuk medan yang tidak berkaitan dengan nama yang sama seperti sifat terbina dalam.

Kesimpulan

Dengan memahami bagaimana gelung for...in berulang melalui sifat objek dan cara mengelakkan sifat yang diwarisi, pengaturcara boleh memanipulasi data objek dalam JavaScript dengan berkesan.

Atas ialah kandungan terperinci Bagaimanakah Gelung `for...in` JavaScript Berulang Melalui Sifat Objek dan Bagaimana Saya Boleh Mengelak Hartanah Diwarisi?. 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