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
Lepaskan: 2024-12-25 04:16:17
asal
189 orang telah melayarinya

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]);
}
Salin selepas log masuk

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
    }
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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!

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