Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Dapatkan Nama Harta Warisan Tidak Terhitung dalam JavaScript?

Bagaimana untuk Dapatkan Nama Harta Warisan Tidak Terhitung dalam JavaScript?

Susan Sarandon
Lepaskan: 2024-11-09 07:57:02
asal
863 orang telah melayarinya

How to Retrieve Non-Enumerable Inherited Property Names in JavaScript?

Mendapatkan Nama Harta Diwarisi Tidak Boleh Dikira bagi Objek dalam JavaScript

JavaScript menyediakan pelbagai kaedah untuk mengakses sifat objek berdasarkan keperluan khusus. Walau bagaimanapun, tiada satu pun daripada kaedah ini membenarkan untuk mendapatkan semula harta yang tidak terhitung, bukan milik sendiri. Artikel ini meneroka pendekatan alternatif untuk mengekstrak sifat sedemikian.

Penyelesaian: Memanfaatkan getOwnPropertyNames dan Rantaian Prototaip

Memandangkan Object.getOwnPropertyNames() boleh mendapatkan semula sifat yang tidak boleh dikira, ia boleh digabungkan dengan prototaip rantai traversal. Fungsi JavaScript berikut, getAllProperties(), berulang melalui rantaian prototaip objek dan menyusun senarai semua sifat bukan miliknya yang tidak boleh dikira:

fungsi getAllProperties(obj){

var allProps = []
  , curr = obj
do{
    var props = Object.getOwnPropertyNames(curr)
    props.forEach(function(prop){
        if (allProps.indexOf(prop) === -1)
            allProps.push(prop)
    })
}while(curr = Object.getPrototypeOf(curr))
return allProps
Salin selepas log masuk

}

Contoh Penggunaan

Untuk menunjukkan kefungsian fungsi getAllProperties() , pertimbangkan tatasusunan berikut objek:

console.log(getAllProperties([1,2,3]));
Salin selepas log masuk

Output:

[ 'length' ]
Salin selepas log masuk

Output menyenaraikan 'panjang' sifat tidak terhitung, yang dimiliki oleh rantai Array.prototype.

Atas ialah kandungan terperinci Bagaimana untuk Dapatkan Nama Harta Warisan Tidak Terhitung dalam JavaScript?. 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