Saya menyarankan Anda untuk membaca artikel ini yang saya pikir menjelaskan dengan cukup baik mengapa memperluas objek adalah ide yang buruk, berkaitan dengan Prototipe juga.
Singkatnya:
Kurangnya spesifikasi
Paparan "objek prototipe" bukan bagian dari spesifikasi apa pun. [...] Agar implementasi sepenuhnya sesuai dengan DOM Level 2, tidak perlu mengekspos objek Node, Elemen, HTMLElement, dll. Global tersebut.
Objek host tidak memiliki aturan
Objek DOM adalah objek host [...] Objek host dapat mengimplementasikan metode internal ini dengan perilaku tergantung implementasi apa pun, atau mungkin objek host hanya mengimplementasikan beberapa metode internal dan bukan yang lain.
[...] Perilaku metode internal bergantung pada implementasi. [...] Menurut definisi, Anda bekerja dengan sesuatu yang diizinkan berperilaku dengan cara yang tidak dapat diprediksi dan sepenuhnya tidak menentu.
Peluang tabrakan
Mengingat sejumlah besar lingkungan yang digunakan saat ini, menjadi tidak mungkin untuk mengetahui apakah properti tertentu belum menjadi bagian dari DOM. [...]
Setiap kontrol nama bentuk bayangan properti diwarisi melalui rantai prototipe. Peluang tabrakan dan kesalahan tak terduga pada elemen formulir bahkan lebih tinggi.
Mempekerjakan semacam strategi awalan dapat mengatasi masalah tersebut. Tetapi mungkin juga akan membawa suara ekstra.
Overhead kinerja
[...] browser yang tidak mendukung ekstensi elemen — seperti IE 6, 7, Safari 2.x, dll — memerlukan ekstensi objek manual. Masalahnya adalah ekstensi manual lambat, tidak nyaman, dan tidak berskala.
[...] setelah Anda mulai memperluas elemen, API perpustakaan kemungkinan besar perlu mengembalikan elemen yang diperluas ke mana-mana. Akibatnya, metode kueri seperti $$ dapat memperpanjang setiap elemen dalam kueri.
IE DOM berantakan
Seperti yang ditunjukkan pada bagian sebelumnya, ekstensi DOM manual berantakan. Tetapi ekstensi DOM manual di IE bahkan lebih buruk [...]
Bonus: bug browser
for(var ... in ...)
loop menjadi kacau karena fungsi prototipe dilewatkan juga.