Bagian objek JavaScript
1: Bagian Dasar
1. Semua variabel dalam JavaScript adalah objek, dengan dua pengecualian nol dan tidak terdefinisi.
2.JScript mendukung empat jenis objek: objek internal, objek yang dihasilkan, objek yang diberikan host (semua objek BOM dan DOM adalah objek host.), Dan objek ActiveX (komponen eksternal).
3. Microsoft JScript menyediakan 11 objek internal (atau "bawaan"). Mereka adalah array, boolean, tanggal, fungsi, global, matematika, angka, objek, regexp, kesalahan, dan objek string.
4. Objek hanyalah data khusus. Objek memiliki sifat dan metode. JavaScript adalah bahasa yang berorientasi objek, tetapi JavaScript tidak menggunakan kelas. JavaScript didasarkan pada prototipe, bukan berbasis kelas.
5. Atribut: adalah variabel yang berafiliasi dengan objek tertentu. Metode: Ini adalah fungsi yang hanya dapat dipanggil oleh objek tertentu.
6. Objek JScript adalah koleksi properti dan metode. Metode adalah fungsi, yang merupakan anggota suatu objek. Atribut adalah nilai atau satu set nilai (dalam bentuk array atau objek) yang merupakan anggota suatu objek.
7. Objek JavaScript didasarkan pada fungsi konstruktor. Saat menggunakan fungsi konstruktor untuk membuat objek baru, dapat dikatakan bahwa objek baru dipakai. Properti adalah variabel di dalam fungsi konstruktor.
Objek Instantiated Menggunakan Fungsi Konstruktor:
kucing = hewan baru ();
8. JavaScript adalah bahasa berbasis objek, dan hampir semua yang Anda temui adalah objek. Namun, ini bukan bahasa pemrograman berorientasi objek yang sebenarnya (OOP) karena tidak ada kelas (kelas) dalam sintaksinya.
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
// Objek adalah kumpulan pasangan nama/nilai
var browser = {// objek dilampirkan dalam kawat gigi keriting
Nama: "Firefox",
Kernel: "tokek"
};
</script>
Salinan kode adalah sebagai berikut:
// akses properti objek melalui dot (.) Atau "[]"
Browser.name // "Firefox"
Browser ["kernel"] // "tokek"
Objek (OBJCT) adalah kumpulan properti, masing -masing properti terdiri dari "pasangan nama/nilai". JS juga mendefinisikan objek khusus - array, yang merupakan set nilai bernomor yang dipesan. JS juga mendefinisikan objek khusus - fungsi, fungsi adalah objek dengan kode yang dapat dieksekusi yang terkait dengannya. Ini menjalankan kode dengan memanggil fungsi dan mengembalikan hasil operasi.
Klarifikasi konsepnya:
"Berbasis Objek = Berorientasi Objek" dalam JS 4. Tidak ada kelas (kelas) di JS, tetapi ia mengambil nama baru yang disebut "objek prototipe", jadi "class = prototipe objek"
2: Perbedaan dan koneksi antar kelas (objek prototipe) dan objek (instance) ###
1. Kelas (objek prototipe) adalah abstrak, konseptual, mewakili jenis barang.
2. Objeknya konkret, praktis, dan mewakili hal tertentu.
3. Kelas (objek prototipe) adalah templat untuk instance objek, dan instance objek adalah individu dari kelas.
Kesalahpahaman umum adalah bahwa nilai literal angka bukan objek. Ini karena bug di parser JavaScript yang mencoba mengurai operator titik sebagai bagian dari nilai nomen numerik titik mengambang.
Ada banyak solusi untuk membuat nilai literal angka terlihat seperti objek.
2..tostring (); // titik kedua dapat diuraikan secara normal
2.tostring (); // Perhatikan ruang sebelum titik
(2) .tostring (); // 2 dihitung terlebih dahulu
Hapus atribut
Satu -satunya cara untuk menghapus properti adalah dengan menggunakan operator hapus; Menyetel properti ke tidak terdefinisi atau nol tidak benar -benar menghapus properti, tetapi hanya menghilangkan hubungan antara properti dan nilainya.
Tiga fitur utama berorientasi objek JavaScript
Encapsulation: Tidak ada implementasi internal yang dipertimbangkan, hanya penggunaan fungsional yang dipertimbangkan
Warisan: mewarisi objek baru dari objek yang ada
Polimorfisme: apa yang disebut polimorfisme mengacu pada banyak negara yang merujuk dalam situasi yang berbeda.
1. Kemasan
Enkapsulasi berarti mengelompokkan kesamaan (termasuk atribut dan perilaku) dari hal -hal yang termasuk dalam kategori yang sama ke dalam kelas untuk memudahkan penggunaan. Misalnya, benda manusia dapat dienkapsulasi dengan cara -cara berikut:
rakyat{
Usia (atribut 1)
Tinggi (atribut 2)
Jenis kelamin (atribut tiga)
Lakukan sesuatu (salah satu perilaku)
Berjalan (perilaku 2)
Berbicara (Babak 3)
}
Manfaat enkapsulasi:
Enkapsulasi melindungi integritas data internal;
Enkapsulasi membuat refactoring objek lebih mudah;
Melemahkan kopling antara modul dan meningkatkan reusability objek;
Membantu menghindari konflik namespace;
Lihat contoh berikut:
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
var boy = {}; // Buat objek kosong
boy.name = "xiao ming"; // Tetapkan nilai sesuai dengan properti objek prototipe
boy.age = 12;
var girl = {};
girl.name = "xiaohong";
girl.age = 10;
</script>
Ini adalah enkapsulasi paling sederhana, merangkum dua atribut dalam satu objek. Namun, metode penulisan ini memiliki dua kelemahan. Salah satunya adalah jika Anda menghasilkan lebih banyak contoh, akan sangat merepotkan untuk menulis; Yang lainnya adalah bahwa tidak ada cara untuk mengetahui apakah ada hubungan antara instance dan prototipe.
Mode konstruktor
Untuk memecahkan masalah menghasilkan contoh dari objek prototipe, JavaScript memberikan pola konstruktor.
Yang disebut "konstruktor" sebenarnya adalah fungsi biasa, tetapi variabel ini digunakan secara internal. Menggunakan operator baru untuk konstruktor dapat menghasilkan instance, dan variabel ini akan terikat pada objek instan.
Misalnya, objek prototipe anak laki -laki dan perempuan dapat ditulis seperti ini sekarang:
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
orang fungsi (nama, usia) {
this.name = name;
this.age = usia;
}
</script>
Kami sekarang dapat menghasilkan objek instan.
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
var boy = orang baru ("xiao ming", "12");
var girl = orang baru ("xiaohong", "10");
waspada (boy.name); // Xiao Ming
waspada (boy.age); // 12
</script>
Pada saat ini, anak laki -laki dan perempuan akan secara otomatis berisi atribut konstruktor yang menunjuk pada konstruktor mereka.
Salinan kode adalah sebagai berikut:
waspada (boy.constructor == orang); //BENAR
waspada (cewek.constructor == orang); //BENAR
Pola prototipe JavaScript menetapkan bahwa masing -masing konstruktor memiliki atribut prototipe yang menunjuk ke objek lain. Semua properti dan metode objek ini akan diwarisi oleh instance konstruktor.
Ini berarti bahwa kita dapat secara langsung mendefinisikan sifat dan metode yang tidak berubah pada objek prototipe.
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
orang fungsi (nama, usia) {
this.name = name;
this.age = usia;
}
Person.protype.type = "manusia";
Person.protype.eat = function () {
waspada ("makan nasi");
}
</script>
Kemudian, hasilkan contoh:
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
var boy = orang baru ("xiao ming", "12");
var girl = orang baru ("xiaohong", "10");
alert (boy.type); // manusia
boy.eat (); // makan
</script>
Pada saat ini, metode Atribut dan EAT () dari semua contoh sebenarnya adalah alamat memori yang sama, menunjuk pada objek prototipe, sehingga meningkatkan efisiensi operasi.
peringatan (boy.eat == girl.eat); //BENAR
Properti prototipe adalah properti bawaan yang menentukan fungsi konstruktor yang diperluas oleh objek.
Kode berikut menambahkan ukuran atribut baru ke fungsi konstruktor hewan, yang merupakan atribut prototipe dari objek CAT. Dengan menggunakan properti prototipe, semua objek yang memperluas fungsi konstruktor hewan dapat mengakses properti ukuran
kucing = hewan baru ("kucing", "meow", "walk/run");
cat.prototype.size = "fat";
Dalam hal ini, atribut ukuran semua objek hewan adalah "lemak". Prototipe default ke instance objek baru. Karena masih merupakan objek, atribut baru dapat ditambahkan ke objek. Sama seperti gaya adalah objek dalam JavaScript, Anda juga dapat terus menambahkan properti demi gaya.
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
/*Tentukan kelas seseorang*/
function person (_name, _age, _salary) {
// Atribut publik kelas orang, atribut publik kelas didefinisikan sebagai: "Ini. Nama atribut"
this.name = _name;
// Atribut pribadi kelas orang, atribut pribadi kelas didefinisikan sebagai: "nama atribut var"
var usia = _age;
var gaji = _salary;
// Tentukan metode publik (metode istimewa) dari kelas orang, definisi metode publik kelas
Ya: "this.functionName = function () {......}"
this.show = function () {
peringatan ("usia ="+usia+"/t"+"gaji ="+gaji); // Mengakses properti pribadi kelas dalam metode publik diizinkan
}
</script>
Ketika suatu objek mencari properti tertentu, ia pertama -tama akan melintasi propertinya sendiri. Jika tidak, itu akan terus mencari objek yang dirujuk oleh [[prototipe]]. Jika tidak, itu akan terus mencari objek yang dirujuk oleh [[prototipe]]. [[Prototipe]], dan seterusnya sampai [[prototipe]].…. [Prototipe]] tidak terdefinisi (objek [[[prototipe]] tidak terdefinisi)) tidak terdefinisi) tidak terdefinisi) tidak terdefinisi) tidak terdefinisi) tidak terdefinisi) tidak terdefinisi) tidak terdefinisi) tidak terdefinisi) tidak terdefinisi) tidak terdefinisi) tidak terdefinisi) tidak terdefinisi) tidak terdefinisi) tidak terdefinisi) tidak terdefinisi) tidak ditentukan
Sederhananya, itu untuk menyimpan referensi ke objek lain melalui objek [[prototipe]], dan cari atributnya melalui referensi ini. Ini adalah rantai prototipe.
Objek jendela global
Setiap fungsi atau variabel global dalam JavaScript adalah properti jendela.
Objek diri persis sama dengan objek jendela. Diri biasanya digunakan untuk mengkonfirmasi bahwa itu dalam bentuk saat ini.
Objek utama utama jendela adalah sebagai berikut:
Objek Dokumen JavaScript
Objek bingkai javascript
Objek Sejarah JavaScript
Objek Lokasi JavaScript
Objek JavaScript Navigator
Objek Layar JavaScript
Beberapa metode umum
valueOf () Metode: Mengembalikan nilai asli dari objek yang ditentukan
Metode split () membagi string menjadi array string dan mengembalikan array ini.
Metode indexOf () mengembalikan kejadian pertama dari nilai string yang ditentukan dalam string.
Metode substring () digunakan untuk mengekstrak karakter dalam string antara dua subskrip yang ditentukan.
Metode Substr () mengekstrak jumlah string yang ditentukan mulai dari posisi startPos dari string.
Metode gabungan () digunakan untuk memasukkan semua elemen dalam array ke dalam string.
arrayObject.noin (pembatas)
Metode Reverse () digunakan untuk membalikkan urutan elemen dalam array.
Metode SLICE () mengembalikan elemen yang dipilih dari array yang ada.
Objek literal
Literal objek adalah proses yang digunakan untuk membuat sejumlah besar atribut.
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
var company = {
Nama: "Microsoft",
Usia: 39,
Karyawan: 99000,
CEO: "Nadella"
};
</script>
Perlu dicatat di sini bahwa atribut dan nilai atribut dipisahkan oleh Colons (:); beberapa atribut dipisahkan oleh koma (,). Objek literal juga dapat menentukan metode. Cukup tulis fungsi pada atribut objek ini. Ini adalah fungsi anonim. Anda hanya perlu menulis nama metodenya () untuk menyebutnya.
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
var dog = {
Nama: "Husky",
Usia: 2,
run: function () {
mengembalikan "123";
}
}
waspada (dog.run ()); // Jika Anda memasukkan dog.run, kode bagian fungsi setelah itu akan muncul
</script>
Bagian Array JavaScript
1. Objek ARRAY
Objek Array: Memberikan dukungan untuk membuat array dari jenis data apa pun.
Salinan kode adalah sebagai berikut:
arrayobj = array baru ()
arrayobj = array baru ([ukuran])
arrayobj = array baru ([elemen0 [, elemen1 [, ... [, elemen]]]])
Definisi: var arr = [2,3,45,6]; var arr = array baru (2,4,5,7)
Tidak ada perbedaan dalam definisi antara keduanya, [] memiliki kinerja tinggi karena kodenya pendek.
Gunakan array dan literal objek: var atest = []; Saat membuat array, menggunakan array literal adalah pilihan yang baik; Demikian pula, literal objek juga dapat digunakan untuk menghemat ruang. Dua baris berikut adalah sama, tetapi gunakan objek secara literal menjadi lebih pendek:
var otest = objek baru; // Cobalah untuk tidak menggunakannya
var otest = {}; // pilihan terbaik, atau var 0test = [];
Traversal Untuk mencapai kinerja terbaik dari array traversing, disarankan untuk menggunakan klasik untuk loop.
Salinan kode adalah sebagai berikut:
var list = [1, 2, 3, 4, 5, ...... 100000000];
untuk (var i = 0, l = list.length; i <l; i ++) {
console.log (daftar [i]);
}
Kode di atas memiliki pemrosesan, yaitu untuk menyimpan panjang array melalui l = list.length.
Konstruktor array
Karena konstruktor Array agak ambigu dalam hal bagaimana menangani argumen, selalu disarankan untuk menggunakan sintaks literal array - [] - untuk membuat array.
Oleh karena itu, kode berikut akan membingungkan:
Array baru (3, 4, 5); // Hasil: [3, 4, 5]
Array Baru (3) // Hasil: [], panjang array ini adalah 3
Cobalah untuk menghindari menggunakan konstruktor array untuk membuat array baru. Dianjurkan untuk menggunakan sintaks literal array. Mereka lebih pendek dan lebih ringkas, sehingga meningkatkan keterbacaan kode.
Properti array array
3 Properti dari Array Array: Atribut Panjang, Atribut Prototipe, Atribut Konstruktor
1. Atribut Panjang
Atribut panjang mewakili panjang array, yaitu, jumlah elemen di dalamnya. Karena indeks array selalu dimulai dari 0, batas atas dan bawah suatu array adalah: 0 dan panjang-1 masing-masing. Tidak seperti kebanyakan bahasa lain, properti panjang array JavaScript dapat berubah, yang membutuhkan perhatian khusus.
2. Atribut Prototipe
Mengembalikan referensi ke prototipe tipe objek. Atribut prototipe umum untuk objek.
Untuk objek array array, gunakan contoh berikut untuk menggambarkan tujuan atribut prototipe.
Tambahkan metode ke objek array untuk mengembalikan nilai elemen maksimum dalam array. Untuk mencapai ini, nyatakan fungsi, tambahkan ke array.prototype, dan gunakan.
Salinan kode adalah sebagai berikut:
function array_max ()
{
var i, max = ini [0];
untuk (i = 1; i <this.length; i ++)
{
if (max <this [i])
max = ini [i];
}
return max;
}
Array.prototype.max = array_max;
var x = array baru (1,2,3,4,5,6);
var y = x.max ();
Setelah kode ini dieksekusi, Y menyimpan nilai maksimum dalam array x, atau 6.
3. Atribut Konstruktor
Fungsi yang mewakili pembuatan suatu objek. Deskripsi: Atribut konstruktor adalah anggota dari semua objek dengan prototipe. Mereka termasuk semua objek asli JScript kecuali objek global dan matematika. Properti konstruktor memegang referensi ke fungsi yang membangun instance objek tertentu.
Misalnya:
Salinan kode adalah sebagai berikut:
x = string baru ("hai");
if (x.constructor == string) // proses (kondisi benar).
//atau
Fungsi myfunc {
// Tubuh fungsi.
}
y = myfunc baru;
if (y.constructor == myfunc) // proses (kondisi benar).
Untuk array:
y = array baru ();
Metode Array:
Melampirkan serangkaian peta pikiran: