Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Menyenaraikan Semua Kaedah Objek dalam JavaScript?

Bagaimana untuk Menyenaraikan Semua Kaedah Objek dalam JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-10-19 16:17:02549semak imbas

How to List All Methods of an Object in JavaScript?

Menyenaraikan Semua Kaedah Objek

Dalam JavaScript, anda boleh menghitung kaedah objek menggunakan kaedah Object.getOwnPropertyNames(). Walau bagaimanapun, anda juga mungkin ingin menapis sifat bukan kaedah, memastikan anda hanya mendapat kefungsian yang diingini.

Object.getOwnPropertyNames()

Object.getOwnPropertyNames( ) mengembalikan tatasusunan semua sifat (kedua-dua boleh dikira dan tidak boleh dikira) yang dimiliki oleh objek tertentu. Contohnya:

console.log(Object.getOwnPropertyNames(Math));
//-> ["E", "LN10", "LN2", "LOG2E", "LOG10E", "PI", ...etc ]

Kaedah Penapisan

Untuk mendapatkan kaedah sahaja, anda boleh menggabungkan Object.getOwnPropertyNames() dengan kaedah penapis():

console.log(Object.getOwnPropertyNames(Math).filter(function (p) {
    return typeof Math[p] === 'function';
}));
//-> ["random", "abs", "acos", "asin", "atan", "ceil", "cos", "exp", ...etc ]

Keserasian Penyemak Imbas ES3

Dalam penyemak imbas ES3 (seperti IE 8 atau ke bawah), sifat objek terbina dalam tidak boleh dikira, kecuali yang ditakrifkan oleh penyemak imbas itu sendiri (cth., tetingkap, dokumen). Akibatnya, menggunakan pendekatan di atas tidak akan menangkap semua kaedah dalam persekitaran ini.

IE Bug dengan { DontEnum }

Dalam Internet Explorer, terdapat pepijat yang menyebabkannya untuk melangkau sifat dengan atribut { DontEnum } dalam objek jika terdapat sifat dengan nama yang sama dalam rantai prototaip yang juga mempunyai { DontEnum }. Ini bermakna bahawa menamakan sifat objek dengan berhati-hati adalah penting apabila bekerja dengan IE untuk mengelakkan masalah yang berpotensi.

Atas ialah kandungan terperinci Bagaimana untuk Menyenaraikan Semua Kaedah Objek 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