Penjelasan terperinci tentang fungsi kilang objek dan pembina dalam corak reka bentuk JavaScript_Pengetahuan asas

WBOY
Lepaskan: 2016-05-16 15:48:18
asal
1211 orang telah melayarinya

Berikut ialah penjelasan teks terperinci dan analisis kod untuk berkongsi dengan anda pengetahuan tentang fungsi kilang objek dan pembina corak reka bentuk JavaScript.

Ikhtisar Menggunakan literal objek, atau menambahkan ahli baharu secara dinamik pada objek kosong, ialah cara paling mudah dan paling mudah untuk mencipta objek. Walau bagaimanapun, sebagai tambahan kepada dua kaedah penciptaan objek yang biasa digunakan ini, JavaScript juga menyediakan kaedah lain untuk mencipta objek. 1).Gunakan fungsi kilang untuk mencipta objek Kita boleh menulis fungsi Fungsi ini adalah untuk mencipta objek dan menukarnya.

Ikhtisar

Menggunakan literal objek, atau menambah ahli baharu secara dinamik pada objek kosong, ialah cara paling mudah dan paling mudah untuk mencipta objek.
Walau bagaimanapun, sebagai tambahan kepada dua kaedah penciptaan objek yang biasa digunakan ini, JavaScript juga menyediakan kaedah lain untuk mencipta objek.
1). Cipta objek menggunakan fungsi kilang

Kita boleh menulis fungsi yang fungsinya adalah untuk mencipta objek, yang boleh dipanggil "kaedah kilang objek".

Salin kod Kod adalah seperti berikut:

//fungsi kilang
fungsi createPerson(nama, umur, pekerjaan) {                                    var o = Objek baharu();                             o.nama = nama; o.umur = umur; o.job = pekerjaan; o.sayName = fungsi () {                                           console.info(nama.ini); 
};       
return o; } //Gunakan fungsi kilang untuk mencipta objek  
var person1 = createPerson('Zhang San', 29, 'Jurutera Perisian');  
var person2 = createPerson('李思', 40, 'Doctor');





2). Takrifkan pembina objek

a). Huruf pertama pembina objek ditulis dengan huruf besar b). Gunakan kata kunci ini secara dalaman untuk menambah ahli pada objek

c). Gunakan kata kunci baharu untuk memanggil pembina objek



Salin kod

Kod adalah seperti berikut: //Takrifkan fungsi "pembina" objek  fungsi Orang(nama, umur, pekerjaan) { this.name = nama;     ini.umur = umur; this.job = pekerjaan;    
this.sayName = fungsi () {                                              
console.info(nama.ini); }; 
} //Gunakan baru untuk memanggil pembina objek untuk mencipta objek
var p1 = Orang baharu('Zhang San', 29, 'Jurutera Perisian');
var p2 = Orang baharu('李思', 40, 'Doktor');


Seorang "pembina" dipanggil dengan cara biasa


Pembina sebenarnya adalah fungsi Perbezaannya ialah apabila memanggilnya, kata kunci "baru" mesti ditambah Jika kata kunci ini tidak ditambah, panggilan kepadanya dianggap sebagai panggilan fungsi biasa.


Salin kod

Kod adalah seperti berikut:

//Sebagai pembina dipanggil oleh fungsi biasa, atribut ditambah melalui ini,

//Menjadi sifat dan kaedah objek tetingkap. console.info(window.name);//Zhang San console.info(window.age); //29 console.info(window.job); //Jurutera Perisian
Pembina objek kelihatan seperti ini:




Salin kod

Kod adalah seperti berikut:

fungsi Orang (nama) {

this.name = nama; this.say = fungsi () { kembalikan "Saya " this.name; }; }
Sebenarnya ia seperti ini (memberi isyarat):





Salin kod
Kod adalah seperti berikut:


fungsi Orang (nama) {
// var this = {};
this.name = nama;
this.say = fungsi () {
kembalikan "Saya " this.name;
};
// kembalikan ini;
}

Kerja yang dilakukan oleh pembina

1. Cipta objek baharu
2. Biarkan pembina ini merujuk kepada objek yang baru dibuat
3. Jalankan kod dalam pembina, yang biasanya melengkapkan kerja menambah sifat pada objek baharu
4. Kembalikan rujukan objek yang baru dibuat kepada dunia luar.
Perbezaan antara pembina objek dan kaedah kilang objek

1. Tiada kod penciptaan objek eksplisit dalam pembina objek
2. Atribut dan kaedah yang sepatutnya ada pada objek baharu ditambah melalui rujukan ini.
3. Tiada pernyataan pulangan dalam pembina objek
Biasanya huruf pertama pembina objek ditetapkan kepada huruf besar untuk membezakannya daripada fungsi biasa.
Sifat pembina objek

a. Gunakan fungsi kilang objek untuk mencipta objek, dan sifat pembina setiap objek merujuk kepada Objek()

Salin kod Kod adalah seperti berikut:

var person = createPerson('Zhang San', 29, 'Jurutera Perisian');
//Gunakan kaedah kilang untuk mencipta objek,

Atribut pembina merujuk kepada fungsi Object()
console.info(person1.constructor === Objek);

//benar


b). Gunakan pembina objek untuk mencipta objek, dan atribut pembina setiap objek merujuk kepada pembina ini

Salin kod Kod adalah seperti berikut:
var p = Orang baharu('Zhang San', 29, 'Jurutera Perisian');
//Buat objek menggunakan pembina objek,
//Atribut pembina bagi setiap objek merujuk kepada pembina ini
console.info(p.constructor === Orang);
//Benar Bagaimana untuk mengelakkan "melupakan" baharu? Anda boleh menggunakan arguments.callee untuk menyelesaikan masalah ini
//Fahami peranan hujah.callee
fungsi TestArgumentsCallee()
{                                                       console.info(this);     
console.info(contoh TestArgumentsCallee ini); console.info(instanceof arguments.callee);
};  
TestArgumentsCallee(); //window
//salah                                                                                 //salah 
TestArgumentsCallee();
//TestArgumentsCallee                                                             //benar                                                                                   //benar




Jadi, anda boleh menggunakan arguments.callee terus


Salin kod

Kod adalah seperti berikut:


//Elakkan lupa
baharu fungsi MyObject(nilai)
{    
jika (!(instanceof arguments.callee ini))

{                                                   //Jika pemanggil terlupa menambah baharu, cuma tambah baharu dan hubungi semula    

kembali MyObject(nilai);  

}        
this.prop = nilai;
}  
//Ujian
var obj1 = MyObject baharu(100); console.info(obj1.prop);//100
var obj2 = MyObject(200);                
console.info(obj2.prop); //200


Kandungan di atas adalah penjelasan terperinci tentang fungsi kilang objek dan pembina corak reka bentuk JavaScript. Saya harap anda menyukainya.
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan