Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mendapatkan Hartanah Warisan Tidak Terhitung dalam JavaScript?

Bagaimana untuk Mendapatkan Hartanah Warisan Tidak Terhitung dalam JavaScript?

Barbara Streisand
Barbara Streisandasal
2024-11-10 20:20:03712semak imbas

How to Retrieve Non-Enumerable Inherited Properties in JavaScript?

Mendapatkan kembali Harta Warisan Tidak Terhitung

Menentukan kewujudan harta warisan yang tidak terhitung adalah penting dalam JavaScript. Walaupun kaedah seperti Object.keys() dan Object.getOwnPropertyNames() menyediakan akses kepada sifat objek, ia mengecualikan atribut yang tidak boleh dikira yang diwarisi.

Untuk merapatkan jurang ini, kita boleh memanfaatkan kaedah Object.getOwnPropertyNames() dalam berganding dengan prototaip rantai traversal. Pendekatan ini membolehkan kami mengenal pasti sifat yang tidak boleh dikira pada mana-mana peringkat hierarki warisan.

Berikut ialah fungsi yang menunjukkan teknik ini:

function 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;
}

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

Dengan menggabungkan Object.getOwnPropertyNames() dengan prototaip melalui rantaian, kita kini boleh mendapatkan senarai lengkap kedua-dua sifat terbilang dan tidak terhitung bagi objek, termasuk yang diwarisi daripada prototaip induknya. Pendekatan ini memberikan pandangan menyeluruh bagi semua hartanah, tanpa mengira keterlihatan atau status pemilikan.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Hartanah Warisan Tidak Terhitung 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