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
Numberadalah tipe objek yang membungkus tipe primitifnumber. Dengan secara eksplisit membuat objekNumber, Anda dapat menangani angka sepertinumber, tetapi biasanya disarankan untuk menggunakan tipe primitifnumber.
typeof numObjectadalah"object", tetapitypeof 42adalah"number".
- Perlu diketahui bahwa menggunakan operator
newuntuk menghasilkan objek pembungkus baru akan memberikan hasil yang berbeda dari memanggilNumbersebagai fungsi. Saat dipanggil sebagai fungsi,numberprimitif 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 strObjectadalah"object", tetapitypeof "Hello"adalah"string".
- Seperti
Number, memanggilStringsebagai 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 primitifbooleanyang digunakan.
typeof boolObjectadalah"object", tetapitypeof trueadalah"boolean".
- Mirip dengan
Number, memanggilBooleansebagai 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
Objectuntuk membuat objek pembungkus untukSymbol, tetapi secara umum, Anda menggunakan tipe primitifSymbolsecara 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, dansymbolyang tidak memiliki metode langsung. - Objek Pembungkus: Objek seperti
Number,String, danBooleanyang 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.