__proto__ ialah prototaip dalaman, prototaip ialah prototaip pembina (pembina sebenarnya adalah fungsi)
Prototaip pembina ialah objek
Jadi apakah itu pembina?
Jika anda ingin mencipta objek, anda mesti mempunyai pembina objek, sama seperti dalam PHP Jika anda ingin mencipta objek, anda mesti mempunyai kelas
dahulu
Intipati pembina ialah fungsi Soalan berikut ialah: Bagaimana untuk mencipta objek melalui pembina ini?
Jawapan: baru
Pembina membina objek.
1. __proto__ semua pembina/fungsi menghala ke Function.prototype, iaitu fungsi kosong (Fungsi kosong)
menerangkan bahawa Nombor dan seterusnya adalah semua pembina, dan pembina ini sebenarnya adalah objek Fungsi. Dalam erti kata lain, ia bersamaan dengan var Number = new Function();
Terdapat sejumlah 12 pembina/objek terbina dalam dalam JavaScript (JSON baru ditambahkan dalam ES5. Berikut ialah 8 pembina yang boleh diakses). Selebihnya seperti Global tidak boleh diakses secara langsung, Argumen hanya dicipta oleh enjin JS apabila fungsi dipanggil, Math, JSON wujud dalam bentuk objek, tiada yang baru diperlukan. __proto__ mereka ialah Object.prototype. Seperti berikut
"semua pembina/fungsi" yang dinyatakan di atas pastinya termasuk yang tersuai. Seperti berikut
Apakah maksudnya?
Semua pembina datang daripada Function.prototype, malah Pembina akar Objek dan Fungsi itu sendiri. Semua pembina mewarisi sifat dan kaedah Function.prototype. Seperti panjang, panggil, guna, ikat (ES5).
Fungsi.prototaip juga merupakan satu-satunya prototaip yang jenis prototaip XXX ialah "fungsi". Prototaip pembina lain ialah objek. Seperti berikut
Oh, ia juga disebut di atas bahawa ia adalah fungsi kosong, mari kita lihat alert(Function.prototype).
Kami tahu bahawa __proto__ semua pembina (termasuk terbina dalam dan tersuai) ialah Function.prototype, jadi siapakah __proto__ Function.prototype?
Saya percaya anda semua pernah mendengar bahawa fungsi dalam JavaScript juga merupakan warga kelas pertama, jadi bagaimana anda boleh menunjukkan ini? Seperti berikut
Ini menunjukkan bahawa semua pembina juga merupakan objek JS biasa, dan atribut boleh ditambah/dialih keluar pada pembina. Pada masa yang sama, ia juga mewarisi semua kaedah pada Object.prototype: toString, valueOf, hasOwnProperty, dsb.
Siapakah __proto__ Object.prototype?
Ia telah sampai ke puncak dan adalah batal.
Adakah anda mempunyai sedikit pemahaman tentang perbezaan antara __proto__ dan prototaip dalam javascript Jika anda mempunyai sebarang soalan, sila tinggalkan mesej dan mari kita bincangkannya bersama