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!