objek JavaScript
JavaScript ialah bahasa pengaturcaraan berorientasikan objek (OOP), tetapi ia berbeza daripada bahasa berorientasikan objek biasa seperti C++ dan Java Contohnya, tiada konsep kelas dalam JavaScript. Oleh itu, apabila menulis kod JavaScript mengikut pemikiran OOP, ia sentiasa berasa sedikit tidak wajar.
Sebenarnya, JavaScript ialah bahasa berasaskan objek Ia boleh dianggap bahawa hampir semua dalam JavaScript adalah objek. Dalam tutorial dan contoh sebelumnya, walaupun kami hampir tidak menyebut konsep objek, selepas mempelajari bab ini, anda akan tahu bahawa ia sebenarnya berdasarkan objek.
Apakah objek?
Objek ialah koleksi sifat dan kaedah. Mari kita gunakan contoh mudah untuk membantu memahami apa itu objek dan beberapa konsep yang berkaitan dengan objek. Sebagai contoh, seseorang adalah objek, maka:
Atribut dan kaedah: Seseorang mempunyai nama, ketinggian, berat dan ciri-ciri lain yang dipanggil atribut objek. Orang boleh bercakap dan berjalan Kami memanggil keupayaan ini kaedah objek.
Kaedah peribadi dan kaedah awam: Selepas mempelajari bahasa pengaturcaraan, seseorang boleh menulis program, dan selepas mempelajari bahasa asing, dia boleh bekerja sebagai penterjemah Keupayaan yang hanya dimiliki oleh objek individu dipanggil kaedah persendirian daripada objek itu. Sebaliknya, kaedah di atas yang semua orang ada, seperti bercakap dan berjalan, dipanggil kaedah awam objek.
Encapsulation: Dua orang yang sama telah mempelajari bahasa pengaturcaraan Walaupun mereka berdua boleh menulis program, selalunya terdapat perbezaan dalam cara menulis program kerana ia adalah dua objek yang berbeza. Sesetengah data dan kod objek boleh menjadi peribadi dan tidak boleh diakses oleh dunia luar, yang dipanggil enkapsulasi.
Warisan: Warisan ialah konsep dalam kelas. Warisan bermaksud subkelas memperoleh sifat dan kaedah kelas induk (kecuali sifat dan kaedah persendirian) dengan mewarisi (lanjutan) daripada kelas induk. Ini seperti pokok besar, lapisan demi lapisan melalui warisan, menjadikan program akhir jelas dan berkuasa. Memandangkan bahasa JavaScript tidak mempunyai konsep kelas, ia tidak secara langsung memberikan keupayaan warisan Walau bagaimanapun, ramai orang dan beberapa rangka kerja JavaScript kini cuba memberikan JavaScript keupayaan untuk mewarisi.
Polymorphism: Polimorfisme merujuk kepada keupayaan benda yang berbeza untuk mempunyai manifestasi yang berbeza. Mekanisme polimorfisme membenarkan objek dengan struktur dalaman yang berbeza untuk berkongsi antara muka luaran yang sama, mengurangkan kerumitan kod dengan cara ini. Malangnya, seperti warisan, JavaScript tidak menyokong polimorfisme, satu konsep yang sangat penting dalam OOP. Sudah tentu, terdapat juga ramai orang dan rangka kerja JavaScript yang cuba secara tidak langsung melaksanakan polimorfisme dalam JavaScript.
Disebabkan panjang dan tujuan tutorial ini, beberapa konsep asas tentang objek diterangkan secara ringkas di sini. Pengaturcaraan berorientasikan objek ialah subjek khusus Pelajar yang berminat boleh membaca karya khusus lain di OOP.
Mengakses sifat objek
Sifat ialah nilai yang dikaitkan dengan objek.
Sintaks untuk mengakses sifat objek ialah:
objectName.propertyName
Contoh ini menggunakan sifat panjang bagi String objek. Dapatkan panjang rentetan:
var message="Hello World!";
var x=message.length;
Selepas kod di atas dilaksanakan, nilai x ialah:
12
Kaedah untuk mengakses objek
Kaedah ialah tindakan yang boleh dilakukan pada objek.
Anda boleh memanggil kaedah melalui sintaks berikut:
objectName.methodName()
Contoh ini menggunakan kaedah toUpperCase() bagi objek String . Tukar teks kepada huruf besar:
var message="Hello world!";
var x=message.toUpperCase();
Selepas kod di atas ialah executed , nilai >
Setelah anda mempunyai pembina objek, anda boleh mencipta contoh objek baharu, seperti ini:
var myFather=new person("John"," Doe", 50,"blue");var myMother=new person("Sally","Rally",48,"green");
Tambahkan sifat pada JavaScript objek
Anda boleh menambah sifat baharu pada objek sedia ada dengan memberikan nilai pada objek:
Dengan mengandaikan personObj sudah wujud - anda boleh menambah sifat baharu ini padanya: nama pertama, nama keluarga, umur dan warna mata:
person.firstname="John";person.lastname="Doe";person.age=30;
person. eyecolor="blue ";
x=person.firstname;
TASelepas kod di atas dilaksanakan, nilai x ialah:
John
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <script> function person(firstname,age){ this.firstname=firstname; this.age=age; } myFather=new person("John",50); document.write(myFather.firstname + " is " + myFather.age + " years old."); </script> </body> </html>Seperti yang ditunjukkan dalam contoh di atas, kami menetapkan atribut nama objek dalam pembina dan lulus prototaip objek Tambah kaedah showName() pada atribut, dan akhirnya nyatakan objek melalui kata kunci baharu.
Kelas JavaScript
JavaScript ialah bahasa berorientasikan objek, tetapi JavaScript tidak menggunakan kelas.
Dalam JavaScript, kelas tidak dibuat, begitu juga objek dibuat daripada kelas (seperti dalam bahasa berorientasikan objek lain).
JavaScript adalah berasaskan prototaip, bukan berasaskan kelas.
JavaScript untuk...dalam gelung
JavaScript untuk...dalam gelung pernyataan melalui sifat objek.
Sintaks
untuk (pembolehubah dalam objek){Kod dilaksanakan...}
Nota: Blok kod dalam gelung for...in akan dilaksanakan sekali untuk setiap atribut.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script> // 定义构造函数,并设定一个属性 function Person(name) { this.name = name; } // 为 Person 增加一个方法 Person.prototype.showName = function() { alert("我叫" + this.name); }; // new 关键字实例化一个对象 var Tom = new Person("Tom"); // 运行该对象内的 showName() 方法 Tom.showName(); </script> </head> <body> </body> </html>