Konstruktor, konstruktor, kita semua akrab dengan nama ini. Konstruktor selalu menunjuk pada konstruktor yang menciptakan objek saat ini.
Satu hal yang perlu diperhatikan di sini adalah bahwa setiap fungsi memiliki properti prototipe, dan konstruktor prototipe ini menunjuk ke fungsi ini. Pada saat ini, ketika kami memodifikasi prototipe fungsi ini, kecelakaan terjadi. menyukai
function person (name, use) {this.name = name; this.age = age;} person.prototype.getage = function () {return this.age;} person.prototype.getName = function () {return this.name;} var p = orang baru ("nicholas", 18); console.log (p.constructor); // orang (nama, usia) console.log (p.getage ()); //18console.log (p.getName ()); // NicholasTetapi jika demikian:
function person (name, use) {this.name = name; this.age = age;} person.prototype = {getName: function () {return this.name; }, getage: function () {return this.age; }} var p = orang baru ("nicholas", 18); console.log (p.constructor); // objek () console.log (p.getage ()); //18console.log (p.getName ()); // NicholasAkibatnya, konstruktor berubah.
Alasannya adalah prototipe itu sendiri juga merupakan objek, dan kode di atas setara dengan
Person.prototype = objek baru ({getName: function () {return this.name;}, getage: function () {return this.age;}});Karena konstruktor selalu menunjuk pada konstruktor yang membuat objek saat ini, tidak sulit untuk memahami bahwa kode di atas konstruktor menghasilkan objek.
Apa yang harus saya lakukan jika konstruktor setelah memodifikasi prototipe dan masih ingin menunjuk ke orang? Sederhana, cukup tetapkan nilai untuk orang.prototype.constructor:
Person.prototype = {constructor: person, getName: function () {return this.name; }, getage: function () {return this.age; }}Diskusi singkat di atas tentang konstruktor di JavaScript adalah semua konten yang saya bagikan dengan Anda. Saya harap ini dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.