Pertama -tama mari kita memiliki program mini dari objek konstruktor+prototipe sederhana
Function createobj (uname, uage) {this.username = uname; }Tidak ada masalah dalam program ini, tetapi sangat berlebihan . :
Createobj.prototype = {showUserage: function () {return this.userage;}, showusername: function () {return this.username; );Namun, penulisan objek prototipe ini milik objek prototipe default dari CreateOBJ.
Sebelum menulis ulang, konstruktor menunjuk ke CreateObj
Function createobj (uname, uage) {this.username = uname; } console.log (createobj.prototype.constructor === CreateObj);Setelah menulis ulang, konstruksion menunjuk ke objek
Createobj.prototype = {showuserage: function () {return this.userage;}, showUserName: function () {return this.username; .Constructor === Objek); // BenarOleh karena itu, konstruksionor tidak dapat secara akurat mengidentifikasi objek, karena ia akan dimodifikasi
Prosedur yang kami tulis sebelumnya pada dasarnya diperluas pada objek prototipe (prototipe), dan kemudian membuat objek.
Bisakah objek instan memanggil ekstensi secara normal?
Function createobj (uname, uage) {this.username = uname; } console.log (obj1.showusername ());Itu bisa dipanggil secara normal, tetapi jika objek prototipe ditulis ulang, itu tidak akan dipanggil
Function createobj (uname, uage) {this.username = uname; ;}} Console.log (obj1.showusername ());Karena setelah menulis ulang objek prototipe, itu dipakai sebelum menulis ulang, sehingga prototipe implisit dari instance __proto__ tidak akan menunjuk ke objek prototipe penulisan ulang, jadi Anda tidak akan memanggil masalah lain. Prototipe, ada jenis kutipan pada objek (prototipe), dan hati -hati, karena banyak instance berbagi objek prototipe, selama ada contoh yang mengubah nilai jenis referensi, semua instance lainnya akan menerima hasilnya setelah file mengubah.
Function createobj () {} createobj.prototype = {name: 'ghostwu', keterampilan: ['php', 'javascript', 'linux']}; Python ');Fitur berbagi prototipe dapat lebih mudah untuk memperluas beberapa metode untuk beberapa objek yang dibangun, seperti array untuk mengulangi
Array.prototype.unique = function () {var res = []; = - 1) {res.push (ini [i]);}} return res;} var anrr = [10, 20, 30, 30, 20, 40, 20]; ;Namun, jangan memperpanjang metode pada objek yang dibangun dengan santai.
Di atas adalah semua isi artikel ini.