Saat kami membuat objek dengan konstruktor, propertinya akan ditambahkan ke ini. Dan atribut yang ditambahkan ke ini tidak benar -benar akan berubah dengan entitas, dan pada saat ini, pendekatan kami akan tampak tidak efisien. Misalnya:
fungsinya () {this.name = 'anna';}Ini berarti bahwa setiap kali kami membuat objek instan dengan Her () yang baru, kami akan menghasilkan atribut nama baru dan memiliki ruang penyimpanan sendiri dalam memori yang dimiliki oleh atribut tersebut. Bahkan, kita dapat menambahkan atribut nama ke prototipe, sehingga semua contoh dapat berbagi atribut nama ini:
fungsinya () {} her.prototype.name = 'anna';Dengan cara ini, ketika kita menggunakan new her () untuk membuat objek, atribut nama tidak lagi menjadi properti pribadi dari objek baru, tetapi ditambahkan ke prototipe objek. Meskipun pendekatan ini akan sangat efisien, itu juga untuk sifat abadi pada objek instan. Ini pasti. Jika Anda mengubah properti ini, atribut dari semua objek baru yang dibuat akan diubah. Ini bukan yang kita inginkan ~~~. Properti publik suatu objek sangat cocok untuk pendekatan ini.
Di sini, mari kita tingkatkan contoh sebelumnya:
fungsinya () {}; her.prototype.name = 'anna'; her.prototype.toString = function () {return this.name;} function his () {}; his.prototype = new her (); his.prototype.constructor = his; his.prototype.sex = 'women';Seperti yang Anda lihat, kami biasanya menyelesaikan konstruksi warisan yang relevan sebelum kami memperluas objek prototipe, jika tidak, metode atribut baru berikutnya dalam his.prototype dapat menghapus hal -hal yang diwariskan.
fungsi anak (f, m) {this.eat = f; this.don = m;} child.prototype = new his (); child.prototype.constructor = child; child.prototype.name = 'jok'; child.prototype.fun = function () {return this.eat + this.don}Seperti yang Anda lihat, perbedaan antara memanggil tostring () sebenarnya hanya sejumlah kecil operasi di belakang layar. Perbedaan utama adalah properti, pekerjaan pencarian metode akan terjadi lebih banyak di dalamnya. Prototipe.
Metode implementasi JavaScript di atas untuk migrasi atribut bersama ke prototipe 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.