Dalam artikel sebelumnya, objek dan prototipe dalam JavaScript (i) menyebutkan beberapa operasi dasar dalam pembuatan objek dalam JavaScript, dan akan terus membahasnya selanjutnya.
Satu model pabrik
Kami tahu bahwa untuk membuat objek kami dapat menggunakan kode berikut:
var user = objek baru (); // Buat objek menggunakan pengguna operator baru.name = 'dibacakan di Danau Triangle'; // Tambahkan atribut ke objek user.age = 22; user.address = 'hubei wuhan'; waspada (user.name + "" + user.age); // kembali 'dibacakan di danau segitiga' hubei wuhan '
Membuat objek dengan cara ini sederhana dan intuitif, dan juga merupakan metode paling mendasar untuk membuat objek dalam JavaScript. Tetapi ada masalah seperti ini, jika kita perlu membuat banyak objek, maka saya harus menulis banyak kode duplikat. Misalnya, jika kita ingin membuat objek lain User1, kita harus menulis ulang kode di atas lagi, yang tidak pantas dalam proses pengembangan yang sebenarnya. Dengan cara ini, jika ada terlalu banyak objek, jumlah kode akan meningkat pesat.
Untuk menyelesaikan masalah seperti itu, kita dapat menggunakan metode yang disebut pola pabrik, yaitu untuk menyelesaikan masalah objek instantiasi yang menghasilkan sejumlah besar kode duplikat.
function create (name, use) {var obj = new objek (); obj.name = nama; obj.age = usia; obj.run = function () {return this.name + '' + this.age; }; kembalikan obj;} var obj1 = create ('zxc', 10); // instance pertama var obj2 = create ('cxz', 20); // Peringatan contoh kedua (obj1.run ()); waspada (obj1.run ());Dari kode di atas, kita dapat melihat bahwa pola pabrik memecahkan masalah duplikasi kode skala besar selama instantiasi, tetapi masalah lain muncul, yaitu, mengidentifikasi masalah, kita tidak dapat mengetahui objek mana mereka. Misalnya
peringatan (tipe Obj1); // objectalert (obj1 instance dari objek); //BENAR
Kode di atas menunjukkan bahwa Box1 adalah objek objek, tetapi kami tidak dapat mengetahui objek mana yang dibuat.
Dua konstruktor (metode konstruksi)
Untuk menyelesaikan masalah di atas, kita dapat menggunakan konstruktor untuk membuat objek. Satu -satunya perbedaan antara konstruktor dan fungsi normal adalah bahwa metode panggilan berbeda. Namun, konstruktor juga merupakan fungsi.
fungsi pengguna (name, usia) {// mode konstruktor this.name = name; this.age = usia; this.run = function () {return this.name + '' + this.age; };}Cukup gunakan operator baru saat membuat objek:
var user1 = pengguna baru ('zxc', 25); var user2 = pengguna baru ('cxz', 22);Sekarang kita dapat mendeteksi apakah User1 atau User2 milik pengguna.
peringatan (user1 instance dari pengguna); // true
Dapat dilihat bahwa menggunakan metode konstruktor memecahkan masalah instantiasi berulang dan juga memecahkan masalah pengenalan objek.
Proses pelaksanaan saat menggunakan konstruktor adalah sebagai berikut:
1. Saat mengeksekusi konstruktor baru (), latar belakang mengeksekusi objek baru ();
2. Lingkup konstruktor ke objek baru.
3. Jalankan kode di dalam konstruktor;
4. Latar belakang secara langsung mengembalikan objek baru.
Selanjutnya, mari kita lihat masalah fungsi di dalam konstruktor. Jika kami menjalankan pernyataan berikut:
alert (user1.run == user2.run); // Hasilnya mengembalikan false
Hasilnya mengembalikan false, yang berarti bahwa metode ini sebenarnya adalah alamat referensi. Jika kita membuat banyak objek berulang kali, metode di setiap objek akan membuka ruang baru dalam memori, yang akan membuang lebih banyak ruang. Untuk mengatasi masalah ini, kita perlu menggunakan berbagi properti atau metode instance. Kami akan terus membahas pemecahan masalah ini di artikel berikutnya.
Di atas adalah objek dan prototipe dalam JavaScript yang diperkenalkan kepada Anda oleh editor (II). Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!