Objek Pembungkus dalam JavaScript
Artikel ini menjelaskan tentang objek pembungkus dalam JavaScript.
YouTube Video
Objek Pembungkus
JavaScript memiliki tipe primitif dan objek untuk menangani mereka (objek bungkus).
Tipe Primitif
Tipe primitif merepresentasikan nilai tunggal dan bersifat sederhana serta ringan. Ini adalah immutable (tidak dapat diubah) dan tidak langsung memiliki metode atau properti objek, tetapi dapat sementara dikonversi menjadi objek pembungkus untuk operasi.
string
dan number
adalah contoh tipe primitif. Di sisi lain, objek bungkus diawali dengan huruf kapital, seperti String
dan Number
.
Objek Pembungkus
Untuk memanipulasi tipe primitif, JavaScript secara sementara menghasilkan objek pembungkus (Object
wrappers). Objek pembungkus berisi metode dan properti untuk tipe primitif.
Number
1let numObject = new Number(42); // Wrapper object
2
3console.log(typeof numObject); // object
4console.log(numObject.valueOf()); // 42
5
6let numValue = Number(42); // Return primitive value
7
8console.log(typeof numValue); // number
9console.log(numValue); // 42
Number
adalah tipe objek yang membungkus tipe primitifnumber
. Dengan secara eksplisit membuat objekNumber
, Anda dapat menangani angka sepertinumber
, tetapi biasanya disarankan untuk menggunakan tipe primitifnumber
.
typeof numObject
adalah"object"
, tetapitypeof 42
adalah"number"
.
- Perlu diketahui bahwa menggunakan operator
new
untuk menghasilkan objek pembungkus baru akan memberikan hasil yang berbeda dari memanggilNumber
sebagai fungsi. Saat dipanggil sebagai fungsi,number
primitif dikembalikan.
String
1let strObject = new String("Hello"); // Wrapper object
2
3console.log(typeof strObject); // object
4console.log(strObject.valueOf()); // Hello
- Ini adalah tipe objek yang membungkus tipe primitif
string
. Dengan menggunakan objekString
, Anda dapat mengakses properti dan metode string, tetapi biasanya yang digunakan adalah tipe primitifstring
.
typeof strObject
adalah"object"
, tetapitypeof "Hello"
adalah"string"
.
- Seperti
Number
, memanggilString
sebagai fungsi akan mengembalikan tipe primitifstring
.
Boolean
1let boolObject = new Boolean(true); // Wrapper object
2
3console.log(typeof boolObject); // object
4console.log(boolObject.valueOf()); // true
- Ini adalah tipe objek yang membungkus tipe primitif
boolean
. Anda juga dapat secara eksplisit membuat objekBoolean
, tetapi biasanya tipe primitifboolean
yang digunakan.
typeof boolObject
adalah"object"
, tetapitypeof true
adalah"boolean"
.
- Mirip dengan
Number
, memanggilBoolean
sebagai fungsi akan mengembalikan tipe primitifboolean
.
BigInt
1let bigIntObject = Object(9007199254740991n); // Wrapper object
2
3console.log(typeof bigIntObject); // object
4console.log(bigIntObject.valueOf()); // 9007199254740991n
5
6let bigIntValue = BigInt(9007199254740991); // Return primitive BigInt
7
8console.log(typeof bigIntValue); // bigint
9console.log(bigIntValue); // 9007199254740991n
10
11// Error
12let bigIntObject2 = new BigInt(9007199254740991n);
Object
を使ってBigInt
のラッパーオブジェクトを生成できますが、通常はプリミティブ型のbigint
を直接使うのが一般的です。
typeof bigIntObject
は"object"
であるのに対し、typeof 9007199254740991n
は"bigint"
です。
BigInt
を関数として呼び出すとプリミティブなbigint
を返しますが、new
演算子をつけてBigInt
のラッパーオブジェクトを生成することはできません。
Symbol
1let symObject = Object(Symbol("id")); // Wrapper object for Symbol
2
3console.log(typeof symObject); // object
4console.log(symObject.valueOf()); //
- Anda dapat menggunakan
Object
untuk membuat objek pembungkus untukSymbol
, tetapi secara umum, Anda menggunakan tipe primitifSymbol
secara langsung.
Perbedaan antara Tipe Primitif dan Objek Pembungkus
- Tipe primitif ringan dan efisien memori, tetapi tidak memiliki properti atau metode langsung. Namun, dalam JavaScript, bahkan dengan tipe primitif, objek pembungkus sementara secara otomatis dibuat saat diperlukan untuk menyediakan metode dan properti.
1let text = "Hello";
2
3// A temporary String object is created,
4// allowing access to the length property
5console.log(text.length);
- Objek pembungkus adalah objek yang dibuat secara eksplisit dan dapat memengaruhi memori serta kinerja, sehingga penggunaan tipe primitif umumnya direkomendasikan.
Kesimpulan
- Tipe Primitif: Tipe ringan seperti
number
,string
,boolean
,null
,undefined
, dansymbol
yang tidak memiliki metode langsung. - Objek Pembungkus: Objek seperti
Number
,String
, danBoolean
yang sementara diubah dari tipe primitif.
Anda dapat mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Silakan periksa juga saluran YouTube kami.