Dalam JavaScript, String, Number, dan Boolean adalah semua tipe dasar primitif, yaitu, string, nilai numerik, dan nilai boolean tidak ada dalam bentuk objek. Namun, karena ketiga tipe primitif ini perlu dioperasikan, JavaScript akan secara otomatis merangkum ketiga jenis nilai ini sehingga mereka memiliki sifat dan metode sebagai objek. Mengambil string sebagai contoh, proses enkapsulasi ini adalah sebagai berikut:
1. Ketika JavaScript menemukan akses properti atau metode panggilan ke nilai string, string baru (nilai string) akan dipanggil untuk secara otomatis merangkum string ke dalam objek string.
2. JavaScript akan mengakses properti atau metode objek yang baru dibuat dan mengembalikan hasil yang sesuai.
3. Setelah akses properti atau panggilan metode selesai, JavaScript akan segera menghancurkan objek yang baru dibuat.
Sebagai contoh, tidak ada artinya untuk menulis atribut ke objek string secara otomatis dibuat oleh JavaScript, karena objek yang dibuat tidak ada lagi setelah pernyataan menulis selesai:
Salinan kode adalah sebagai berikut:
var s = "tes";
s.length = 9;
console.log (s.length); // masih 4
s.newvariable = 9;
console.log (s.newvariable); // tidak ditentukan
console.log (s === "tes"); // true
Perlu dicatat bahwa variabel S dalam kode di atas selalu mewakili string primitif. Objek String secara otomatis dibuat oleh JavaScript ada selama eksekusi operasi s.length atau s.newvariable. Ini dapat diverifikasi dari baris kode terakhir dalam percobaan di atas.
Selain merangkum nilai primitif secara otomatis, pengembang juga dapat memilih untuk melakukan proses yang sesuai secara manual. Tidak seperti enkapsulasi otomatis, objek yang dihasilkan yang diperoleh dengan enkapsulasi manual tidak segera dihancurkan, sehingga operasi penulisan properti yang diambil untuk objek yang dienkapsulasi secara manual masuk akal:
Salinan kode adalah sebagai berikut:
var t = string baru ("test");
t.length = 9;
console.log (t.length); // masih 4, karena atribut panjang dibaca saja
t.newvariable = 9;
console.log (t.newvariable); // 9
console.log (t == "tes"); // true
console.log (t === "tes"); // false