Setiap fungsi JavaScript memiliki atribut prototipe (objek JavaScript tidak memiliki atribut ini). Atribut ini mengacu pada suatu objek, yang merupakan objek prototipe. JavaScript memungkinkan kami untuk memodifikasi objek prototipe ini.
Ada 2 cara untuk memodifikasi:
Metode 1: Tambahkan properti atau metode ke objek prototipe asli
function person () {} tuan.Metode 2: Menulis ulang (menimpa) objek prototipe
function person () {} person.prototype = {add: function () {alert (this.name);}, nama: "aty"} var p2 = new person (); p2.add (); // atyAnda dapat melihat bahwa kedua metode di atas dapat memodifikasi prototipe, jadi apa bedanya? Metode mana yang merupakan metode yang disarankan?
function person () {} function hewan () {} var orang = orang baru (); var hewan = new hewan (); // Ubah prototipe person.prototype.say = function () {alert ("person");} // Modifikasi prototipe hewan.prototype = {katakan: function () {warni personanimal.say (); // typeerror yang tidak dibuka: tidak ditentukan bukan fungsiJika Anda membuat objek terlebih dahulu dan kemudian memodifikasi prototipe, maka jika Anda menggunakan metode 1, objek yang Anda buat dapat dengan benar mengakses prototipe yang dimodifikasi; Jika Anda menggunakan Metode 2, objek yang Anda buat tidak dapat mengakses prototipe yang dimodifikasi. Dari perspektif ini, jelas metode 1 lebih baik dari metode 2. Mengapa ini terjadi?
function person () {} function hewan () {} var person = orang baru (); var hewan = hewan baru (); alert (orang .__ proto__ === person.prototype); // truealert (hewan .__ proto__ === hewani. Animal.prototype = {katakan: function () {alert ("person");}} alert (orang .__ proto__ === Person.prototype); // truealert (hewan .__ proto__ === hewan.prototype); // falseJelas, ini sangat mirip dengan "Modify Reference" dan "Modifikasi Objek yang Ditunjuk dengan Referensi" di Java, dan efeknya sama.
Penjelasan terperinci di atas tentang perbedaan antara modifikasi dan penulisan ulang (overwrite) dari prototipe JavaScript adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.