Rumah > Artikel > hujung hadapan web > Dua cara berbeza untuk mencipta kelas dan objek dalam pengetahuan JS_Basic
Dalam JavaScript, apabila anda mentakrifkan fungsi baharu, anda sebenarnya mengisytiharkan kelas baharu dan fungsi itu sendiri adalah bersamaan dengan pembina kelas. Kod berikut menunjukkan kepada anda dua cara berbeza untuk mencipta kelas Person baharu dan takrif Person.prototype mengikut takrifan fungsi.
var Person = function(name) { // 一个匿名函数, 并将这个函数赋值给一个Person变量, 此时Person成为一个类 this.name = name; } function Person(name) { // 直接定义一个叫做Person的函数表示Person类 this.name = name; } Person.prototype = { // 定义Person的prototype域 printName: function() { // 定义一个print函数 alert(this.name); } }
Selepas anda mengisytiharkan kelas melalui fungsi, anda boleh membuat instantiate kelas melalui pengendali baharu. Dengan cara ini, anda boleh memanggil fungsi ahli kelas untuk melengkapkan logik anda.
var person = new Person("Joe Smith"); // 使用new操作符来新建一个Person的实例, 并赋给变量person person.printName(); // person就可以看作是一个实例的引用(reference), 所以可以通过这个引用来调用Person类中的成员函数
Mari kita ringkaskan keseluruhan proses dan langkah-langkah untuk mencipta tika kelas baharu:
1. Isytiharkan kelas baharu dengan mentakrifkan fungsi (tanpa nama atau dengan nama sebenar
).
2. Jika perlu, tentukan medan prototaip kelas baharu ini
3. Gunakan operator baharu diikuti dengan fungsi yang anda takrifkan untuk mencipta contoh kelas baharu Setelah pengkompil JavaScript menemui operator baharu, ia sebenarnya mencipta pembolehubah contoh kelas kosong.
4. Salin semua sifat dan kaedah dalam medan prototaip kelas ini ke tika baharu ini dan arahkan semua penunjuk ini dalam fungsi ahlinya ke tika yang baru dibuat ini
5. Seterusnya, laksanakan fungsi dengan serta-merta mengikut operator baharu
6. Apabila anda melaksanakan fungsi ini, jika anda cuba menetapkan nilai kepada sifat yang tidak wujud, pengkompil JavaScript akan secara automatik mencipta sifat untuk anda dalam skop kejadian ini
7. Selepas fungsi dilaksanakan, kembalikan contoh yang dimulakan.
Dalam Prototaip, menggunakan objek Kelas, anda boleh mengisytiharkan objek baharu dengan cara yang agak mudah. Dengan menggunakan Class.create(), prototaip mencipta fungsi pembina lalai initialize() untuk anda Sebaik sahaja anda melaksanakan fungsi ini, anda boleh mencipta contoh baharu kelas dengan cara yang serupa dengan fungsi pembina dalam Java.