Saya membaca Javascript: Bagian Yang Baik , dan berjuang untuk mendapatkan bagian saya tentang prototipe .
Setelah sedikit google, saya sampai pada kesimpulan bahwa itu adalah untuk menambahkan properti ke objek setelah deklarasi objek.
Menggunakan skrip ini yang dikilau dari w3schools, saya perhatikan bahwa menghapus baris yang menambahkan properti prototipe tidak berpengaruh . Jadi apa gunanya?
//Prototyping
function employee(name,jobtitle,born)
{
this.name=name;
this.jobtitle=jobtitle;
this.born=born;
}
var fred=new employee("Fred Flintstone","Caveman",1970);
employee.prototype.salary=null; // <--- try removing this line
fred.salary=20000;
document.write (fred.salary);
javascript
prototyping
technique
Fuzz ringan
sumber
sumber
Jawaban:
Itu bukan cara kerja prototipe. Prototipe digunakan dalam rantai prototipe.
Setiap kali Anda mencoba untuk mendapatkan properti pada objek itu akan memeriksa objek untuk nama properti itu. Jika tidak ada maka akan terlihat di prototipe.
Contoh:
Jadi inti dari prototipe hanyalah penggunaan kembali kode dan pewarisan.
sumber
prototype is undefined
---o.prototype.newProp = "mutts nuts";
o
adalah sebuah objek. The.prototype
properti digunakan pada fungsi, mengabaikannya. Lakukan sajao.newProp = "mutts nuts"
Ketika Anda melakukannya,
fred.salary=20000
Anda telah menambahkan atribut gaji hanya ke fred. Saat menggunakan prototipe, semua karyawan yang Anda buat sejak saat itu akan memiliki atribut gaji.Katakanlah Anda memiliki 100 contoh karyawan, dan Anda ingin menambahkan atribut gaji ke mereka semua. Anda bisa melakukannya secara manual, beralih ke setiap karyawan dan menambahkannya. Atau Anda bisa menggunakan prototipe dan mengatur jika untuk semuanya.
Prototipe berguna ketika Anda ingin fungsionalitas untuk sesuatu yang sudah ada. Katakanlah Anda ingin menambahkan metode khusus ke array. Anda akan melakukan sesuatu seperti:
Dari sana, semua array yang akan Anda buat, akan memiliki metode yang tersedia.
sumber
Anda mungkin ingin melihat artikel ini .
Jika Anda menambahkan properti ke objek yang digunakan sebagai prototipe untuk sekumpulan objek, objek yang menjadi prototipe juga mendapatkan properti baru.
Itulah salah satu keunggulan utama bahasa berbasis prototipe dibandingkan bahasa berbasis kelas.
Juga, mudah untuk mendapatkan warisan OO klasik dengan JS jika Anda perlu, tetapi seringkali sulit untuk mendapatkan prototipe-model untuk bahasa yang tidak mengimplementasikannya secara default.
sumber