Objek JavaScript adalah nilai majemuk, yang merupakan kumpulan atribut atau nilai yang disebutkan. Itu referensi nilai atribut melalui simbol "." Ketika nilai atribut adalah fungsi, kami menyebutnya metode. Kami melihat bahwa string juga memiliki sifat dan metode:
Salinan kode adalah sebagai berikut:
var s = "Halo, dunia!";
var word = s.substring (s.indexof ("")+1, s.length);
Karena string bukan objek, mengapa memiliki atribut? Selama atribut string S dirujuk, JavaScript akan mengubah nilai string menjadi objek dengan memanggil konstruktor string baru. Objek ini mewarisi metode string dan digunakan untuk memproses referensi ke atribut. Setelah referensi atribut selesai, objek yang baru dibuat akan dihancurkan (pada kenyataannya, objek ini tidak akan dibuat dalam implementasi, tetapi seluruh proses terlihat seperti ini).
Seperti string, angka, dan nilai boolean juga memiliki metode mereka sendiri: buat objek sementara melalui konstruktor angka () dan boolean (), dan panggilan ke metode ini berasal dari objek sementara ini. Objek sementara ini disebut objek pembungkus.
Melihat:
Salinan kode adalah sebagai berikut:
var s = "tes"; // Nyatakan string
s.len = 4; // Tetapkan properti len untuk itu
var t = s.len; // query properti ini
Pada saat ini, ketika kita mengeluarkan T, kita harus tidak ditentukan. Baris kode kedua membuat objek string sementara, dan menetapkan nilai atribut LEN ke 4, kemudian menghancurkan objek. Baris ketiga kode menetapkan atribut baru melalui nilai string asli S dan mencoba membaca atribut Len -nya. Atribut ini secara alami tidak ada, sehingga nilai ketika t output tidak ditentukan.
Kode ini menunjukkan bahwa ketika membaca nilai atribut (atau metode) angka, string, dan nilai boolean, itu berperilaku seperti objek, tetapi ketika mencoba untuk menetapkan nilai pada atributnya, operasi ini diabaikan: modifikasi hanya terjadi pada objek sementara, dan objek sementara ini tidak terus dipertahankan.
Objek sementara yang dibuat saat mengakses properti dari string, angka, atau boolean disebut objek pembungkus. Hanya sesekali digunakan untuk membedakan antara nilai string dan objek string, objek numerik, nilai boolean dan objek boolean.