pewarisan kelas javascript
Penulis:Eve Cole
Waktu Pembaruan:2009-06-11 16:23:07
1. Cara pertama adalah berpura-pura menjadi objek. (Menggunakan setiap nama metode di js adalah objek Fungsi) Kode Java function Parent(nama pengguna){
this.nama pengguna = nama pengguna;
ini.katakan = fungsi(){
alert(ini.nama pengguna);
}
}
fungsi Anak(nama pengguna, kata sandi){
this.temp = Induk;//temp menunjuk ke tempat Induk menunjuk. Setiap nama metode di js adalah objek Fungsi, yang menunjuk ke suatu metode.
this.temp(nama pengguna);//Konten dalam metode inisialisasi hapus this.temp;//temp tidak lagi berguna. Anda dapat menghapusnya secara langsung. Ini tidak bisa hilang //Parent(nama pengguna);//Penulisan dengan cara ini mungkin tampak benar di permukaan, tetapi sebenarnya salah. Karena hanya objek yang keluar dari new yang memiliki this, tidak ada nilai saat memanggil this di Parent this.password = password;
ini.halo = fungsi(){
alert(ini.kata sandi);
}
}
var induk = Induk baru("zhangsan");
parent.say();//zhangsan
var anak = Anak baru("lisi","123456");
anak.katakan();//lisi
anak.halo();//123456
//Cara pertama adalah berpura-pura menjadi sebuah objek (Menggunakan setiap nama metode di js adalah objek Fungsi)
fungsi Induk(nama pengguna){
this.nama pengguna = nama pengguna;
ini.katakan = fungsi(){
alert(ini.nama pengguna);
}
}
fungsi Anak(nama pengguna, kata sandi){
this.temp = Induk;//temp menunjuk ke tempat Induk menunjuk. Setiap nama metode di js adalah objek Fungsi, yang menunjuk ke suatu metode.
this.temp(nama pengguna);//Konten dalam metode inisialisasi hapus this.temp;//temp tidak lagi berguna. Anda dapat menghapusnya secara langsung. Ini tidak bisa hilang //Parent(nama pengguna);//Penulisan dengan cara ini mungkin tampak benar di permukaan, tetapi sebenarnya salah. Karena hanya objek yang keluar dari new yang memiliki this, tidak ada nilai saat memanggil this di Parent this.password = password;
ini.halo = fungsi(){
alert(ini.kata sandi);
}
}
var induk = Induk baru("zhangsan");
parent.say();//zhangsan
var anak = Anak baru("lisi","123456");
anak.katakan();//lisi
anak.halo();//123456
2. Metode kedua: metode fungsi call() Fungsi call() adalah fungsi dari objek Fungsi. Penggunaan spesifiknya adalah sebagai berikut kode Java // Fungsi call() adalah fungsi dari objek Fungsi // Spesifik penggunaannya seperti fungsi test(str){
alert(ini.nama pengguna + "," + str);
}
var o = Objek baru();
o.nama pengguna = "zhangsan";
test.call(o,"123456");//zhangsan,123456. Karena setiap objek Fungsi memiliki metode call(), dan nama fungsinya adalah objek Fungsi. Parameter pertama dari fungsi call() adalah fungsi pengujian Ini di.
//Fungsi call() adalah fungsi dari objek Function //Penggunaan spesifiknya seperti function test(str){
alert(ini.nama pengguna + "," + str);
}
var o = Objek baru();
o.nama pengguna = "zhangsan";
test.call(o,"123456");//zhangsan,123456. Karena setiap objek Fungsi memiliki metode call(), dan nama fungsinya adalah objek Fungsi. Parameter pertama dari fungsi call() adalah fungsi pengujian Ini di.
Fungsi kode Java Induk(nama pengguna){
this.nama pengguna = nama pengguna;
ini.katakan = fungsi(){
alert(ini.nama pengguna);
}
}
fungsi Anak(nama pengguna, kata sandi){
Parent.call(ini, nama pengguna);
this.password = kata sandi;
ini.halo = fungsi(){
alert(ini.kata sandi);
}
}
var induk = Induk baru("zhangsan");
parent.say();//zhangsan
var anak = Anak baru("lisi","123456");
anak.katakan();//lisi
anak.halo();//123456
fungsi Induk(nama pengguna){
this.nama pengguna = nama pengguna;
ini.katakan = fungsi(){
alert(ini.nama pengguna);
}
}
fungsi Anak(nama pengguna, kata sandi){
Parent.call(ini, nama pengguna);
this.password = kata sandi;
ini.halo = fungsi(){
alert(ini.kata sandi);
}
}
var induk = Induk baru("zhangsan");
parent.say();//zhangsan
var anak = Anak baru("lisi","123456");
anak.katakan();//lisi
anak.halo();//123456
3. Metode implementasi ketiga: metode fungsi apply() apply() dan call() sama, hanya saja parameter yang diteruskan berbeda. Parameter penerapan adalah kode array Java // Metode implementasi ketiga: fungsi apply() Metode, apply() dan call() sama, hanya saja parameter yang diteruskan berbeda. Parameter apply adalah array // sehingga pewarisan dapat mengimplementasikan fungsi Parent(username){ seperti ini
this.nama pengguna = nama pengguna;
ini.katakan = fungsi(){
alert(ini.nama pengguna);
}
}
fungsi Anak(nama pengguna, kata sandi){
Parent.apply(ini, Array baru(nama pengguna));
this.password = kata sandi;
ini.halo = fungsi(){
alert(ini.kata sandi);
}
}
var induk = Induk baru("zhangsan");
parent.say();//zhangsan
var anak = Anak baru("lisi","123456");
anak.katakan();//lisi
anak.halo();//123456