Bisakah saya menambahkan properti string?
Perhatikan kode berikut:
let str = "Hello";
str.test = 5;
alert(str.test);
Bagaimana menurutmu, akankah itu bekerja? apa yang akan muncul?
Cobalah jalankan:
let str = "Hello";
str.test = 5; // (*)
alert(str.test);
Tergantung apakah kamu gunakan use strict atau tidak, hasilnya mungkin bisa:
undefined(bukan strict mode)- An error (strict mode).
Kenapa? Kita lihat apa yang terjadi apda baris (*):
- Ketika properti dari
strdi akses, sebuah “objek pembungkus” dibuat. - Didalam mode strict, menulis kedalamnya adalah sebuah error.
- Otherwise, the operation with the property is carried on, the object gets the
testproperty, but after that the “wrapper object” disappears, so in the last linestrhas no trace of the property. - Sebaliknya, operasi dengan propertinya dibawa, objeknya mendapatkan properti
test, tapi setelah itu “objek pembungkus” menghilang, jadi di baris terakhirstrtidak mempunyai jejak dari properti itu.
Contoh ini dengan jelas membuktikan bahwa primitif bukanlah sebuah objek
Mereka tidak bisa menyimpan data tambahan.