Artikel ini menjelaskan penggunaan prototipe di JS. Bagikan untuk referensi Anda. Analisis spesifiknya adalah sebagai berikut:
Phototype di JS adalah bagian yang sulit untuk dipahami JS
Artikel ini didasarkan pada poin pengetahuan berikut:
1 Mode Desain Prototipe
Di .net, Anda dapat menggunakan clone () untuk mengimplementasikan metode prototipe
Gagasan utama dari metode prototipe adalah bahwa sekarang ada kelas A. Saya ingin membuat kelas B. Kelas ini diprototip oleh A dan dapat diperluas. Kami menyebut prototipe B A.
2 Metode JavaScript dapat dibagi menjadi tiga kategori:
Metode Kelas A
B Metode Objek
C Metode Prototipe
Contohnya adalah sebagai berikut:
function people (name) {this.name = name; // Metode objek this.introduce = function () {alert ("My Name is"+this.name); "Windking");3 Obj1.func.call (OBJ) Metode
Itu berarti menganggap OBJ sebagai metode Obj1 dan Call Func
OK, masalah berikut diselesaikan satu per satu:
Apa arti prototipe?
Setiap objek dalam JavaScript memiliki atribut prototipe.
A.prototype = b () baru;
Memahami prototipe tidak boleh dikacaukan dengan warisan. Prototipe A adalah contoh dari B. Dapat dipahami bahwa A mengkloning semua metode dan sifat dalam B. A dapat menggunakan metode dan properti B. Apa yang ditekankan di sini adalah kloning daripada warisan. Ini bisa terjadi: prototipe A adalah instance dari B, dan prototipe B juga merupakan instance dari A.
Mari kita lihat contoh percobaan:
function BaseClass () {this.showmsg = function () {alert ("BaseClass :: showmsg");Kami pertama -tama mendefinisikan kelas baseclass, dan kemudian kami ingin mendefinisikan ExtentClass, tetapi kami bermaksud menggunakan instance baseclass sebagai prototipe untuk mengkloning ExtandClass juga berisi metode objek ShowMSG.
ExtleClass.prototype = Baseclass baru () dapat dibaca sebagai: ExtleClass dibuat dengan instance baseclass sebagai kloning prototipe.
Lalu akan ada pertanyaan, apa yang akan terjadi jika ExtleClass sendiri berisi metode dengan nama yang sama dengan metode baseclass?
Berikut ini adalah Eksperimen 2:
function BaseClass () {this.showmsg = function () {alert ("Baseclass :: showmsg"); MsgBukti Eksperimental: Ketika suatu fungsi berjalan, pertama -tama akan pergi ke fungsi dalam ontologi untuk mencari. Atau dapat dipahami bahwa prototipe tidak akan mengkloning fungsi dengan nama yang sama.
Maka akan ada pertanyaan baru lainnya:
Bagaimana jika saya ingin menggunakan instance dari ExtandClass instance untuk memanggil Metode Baseclass 'Metode Showmsg?
Jawabannya adalah menggunakan panggilan:
extentClass.prototype = baseclass baru (); var instance = new ExtandClass (); var baseInstance = new Baseclass (); baseInstance.showmsg.call (instance); // show Baseclass :: showmsg
Di sini baseInstance.showmsg.call (instance);
Oke, seseorang mungkin bertanya di sini mengapa tidak baseclass.showmsg.call (instance);
Ini adalah perbedaan antara metode objek dan metode kelas.
Akhirnya, jika kode berikut dipahami dengan jelas, lalu apa yang dikatakan artikel ini sudah dipahami:
<type skrip = "Text/JavaScript"> Function Baseclass () {this.showmsg = function () {alert ("Baseclass :: showmsg"); ass () {this.showmsg = function () {alert ("extandClass :: showmsg"); }} extleClass.showmsg = function () {waspada ("ExtempleClass :: showmsg static")} ExtempleClass.prototype = new Baseclass (); var extleClass (); showmgin (); Kelas :: showmsgbaseclass.showmsg.call (instance); baseInstance = baseClass baru (); baseInstance.showmsg.call (instance); // tunjukkan baseclass :: showmsg </script>Saya harap artikel ini akan membantu pemrograman JavaScript semua orang.